Добавить Colorbar в последовательность линейных графиковPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Добавить Colorbar в последовательность линейных графиков

Сообщение Anonymous »

У меня есть последовательность линейных графиков для двух переменных (x, y) для ряда различных значений переменной z. Я бы обычно добавил линейные сюжеты с такими легендами: < /p>

Код: Выделить всё

import matplotlib.pyplot as plt

fig = plt.figure()
ax  = fig.add_subplot(111)
# suppose mydata is a list of tuples containing (xs, ys, z)
# where xs and ys are lists of x's and y's and z is a number.
legns = []
for(xs,ys,z) in mydata:
pl = ax.plot(xs,ys,color = (z,0,0))
legns.append("z = %f"%(z))
ax.legends(legns)
plt.show()
< /code>

Но у меня слишком много графиков, и легенды будут охватывать график. Я бы предпочел, чтобы цветная бара, указывающая значение Z, соответствующее цвету. Я не могу найти ничего подобного в Галери, и все мои попытки разобраться с Colorbar. Очевидно, я должен создать коллекцию участков, прежде чем пытаться добавить цвет. < /p>

Есть ли простой способ сделать это? Спасибо.import matplotlib.pyplot as plt
import matplotlib.cm     as cm

fig = plt.figure()
ax  = fig.add_subplot(111)
mycmap = cm.hot
# suppose mydata is a list of tuples containing (xs, ys, z)
# where xs and ys are lists of x's and y's and z is a number between 0 and 1
plots = []
for(xs,ys,z) in mydata:
pl = ax.plot(xs,ys,color = mycmap(z))
plots.append(pl)
fig.colorbar(plots)
plt.show()
< /code>

Но это не будет работать в соответствии со ссылкой на Matplotlib, потому что список участков не является «сопоставленным», что бы это ни значило. < /p>

Я создал альтернативную функцию графика с использованием linecollection < /code>: < /p>

def myplot(ax,xs,ys,zs, cmap):
plot = lc([zip(x,y) for (x,y) in zip(xs,ys)], cmap = cmap)
plot.set_array(array(zs))
x0,x1 = amin(xs),amax(xs)
y0,y1 = amin(ys),amax(ys)
ax.add_collection(plot)
ax.set_xlim(x0,x1)
ax.set_ylim(y0,y1)
return plot
< /code>

xs
и ys являются списками списков координат x и y и zs - это список различных условий, чтобы раскрасить каждую строку. Хотя это немного похоже на трюк ... я думал, что будет более аккуратный способ сделать это. Мне нравится гибкость функции plt.plot () .

Подробнее здесь: https://stackoverflow.com/questions/834 ... line-plots
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»