Мой набор данных имеет вид:
Data[0] = [headValue,x0,x1,..xN]
Data[1] = [headValue_ya,ya0,ya1,..yaN]
Data[2] = [headValue_yb,yb0,yb1,..ybN]
...
Data[n] = [headvalue_yz,yz0,yz1,..yzN]
Я хочу построить f (y *) = x, чтобы я мог визуализировать все линейные графики на одном и том же рисунке разными цветами, каждый цвет определяется headervalue_y *.
Я также хочу добавить цветовую панель, цвет которой соответствует линиям и, следовательно, значениям заголовка, чтобы мы могли визуально связать, какое значение заголовка приводит к какому поведению.
Вот то, к чему я стремлюсь : (График из Lacroix B, Letort G, Pitayu L и др. Шкала динамики микротрубочек с размером ячейки для установки длины шпинделя и времени сборки. Ячейка разработчика. 2018; 45 (4): 496–511.e6. Doi: 10.1016 / j.devcel.2018.04.022)
У меня проблемы с добавлением цветовой шкалы, я пытался извлечь N цветов из цветовой карты (N - это мое количество различных значений headValues, или столбец -1), а затем добавив для каждого линейного графика соответствующий цвет, вот мой код для уточнения:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
Data = [['Time',0,0.33,..200],[0.269,4,4.005,...11],[0.362,4,3.999,...16.21],...[0.347,4,3.84,...15.8]]
headValues = [0.269,0.362,0.335,0.323,0.161,0.338,0.341,0.428,0.245,0.305,0.305,0.314,0.299,0.395,0.32,0.437,0.203,0.41,0.392,0.347]
# the differents headValues_y* of each column here in a list but also in Data
# with headValue[0] = Data[1][0], headValue[1] = Data[2][0] ...
cmap = mpl.cm.get_cmap('rainbow') # I choose my colormap
rgba = [] # the color container
for value in headValues:
rgba.append(cmap(value)) # so rgba will contain a different color for each headValue
fig, (ax,ax1) = plt.subplots(2,1) # creating my figure and two axes to put the Lines and the colorbar
c = 0 # index for my colors
for i in range(1, len(Data)):
ax.plot( Data[0][1:], Data[i][1:] , color = rgba[c])
# Data[0][1:] is x, Data[i][1:] is y, and the color associated with Data[i][0]
c += 1
fig.colorbar(mpl.cm.ScalarMappable(cmap= mpl.colors.ListedColormap(rgba)), cax=ax1, orientation='horizontal')
# here I create my scalarMappable for my lineplot and with the previously selected colors 'rgba'
plt.show()
Текущий результат:
Как добавить цветовую шкалу сбоку или внизу первой оси?
Как правильно добавить шкалу для этой цветовой шкалы, соответствующую разным значениям head?
Как обеспечить соответствие цветовой шкалы и цвета в разные строки на График со ссылкой Один цвет = Одно headValue?
Я пытался работать с диаграммой рассеяния, которую удобнее использовать с scalarMappable, но ни одно решение не позволяет мне делать все эти вещи сразу.