Разброс графика, созданный с помощью цикла. Нужна помощь с использованием карты и удержания - PullRequest
0 голосов
/ 18 марта 2019

У меня есть код, который извлекает информацию из файлов и наносит эту информацию на диаграмму рассеяния. График создан, но теперь я бы хотел, чтобы каждая точка имела свой цвет, чтобы ось х переходила от синего к красному оттенку (карта bwr). По сути, каждый раз, когда программа зацикливается, мне нужен разноцветный маркер. Я не могу понять, как сделать эту работу. Я пытаюсь использовать счетчик, но он также не работает.

fig1, ax1 = plt.subplots(figsize=(15,10))
i=0
for path in paths:
     files = glob.glob ('./' + path + 'filename')
     print(files)
     for file in files
          for filtername in filterlist:
               hdu = fits.open(file)
               # Extract information in this loop
               x=xdata
               y=ydata
     ax1.set_xlabel('x-axis')
     ax1.set_ylabel('y-axis')
     ax1.scatter(xdata, ydata, c=i, cmap='bwr')
     plt.hold(True)
savefig('plot')

1 Ответ

0 голосов
/ 18 марта 2019

Из документов :

cmap: Colormap, необязательно, по умолчанию: None
Экземпляр Colormap или зарегистрированное имя colormap. cmap используется только в том случае, если c является массивом с плавающей точкой. Если None, по умолчанию используется rc image.cmap.

Если я правильно понял, что вы хотите, попробуйте отредактировать строку:

ax1.scatter(xdata, ydata, c=i, cmap='bwr')

в

ax1.scatter(xdata, ydata, c=xdata, cmap='bwr')

и должно работать.

Вот очень простой пример кода, чтобы показать это:

import matplotlib.pyplot as plt
import numpy as np

fig1, ax1 = plt.subplots()
xdata = np.linspace(1, 10, 100)
ydata = xdata**2

plt.scatter(xdata, ydata, c=xdata, cmap='bwr')
ax1.set_xlabel('x-axis')
ax1.set_ylabel('y-axis')
fig1.savefig('plot.jpg')

результирующее изображение:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...