matplotlib - 运行时在不事先知道的情况下添加多行

时间:2013-01-28 23:29:39

标签: python pointers reference matplotlib

我试图在单个数字上添加多行而不事先知道行数。我目前有一个类,它具有x和y值,用于单个会话中的行。

我不确定如何在同一图中为每个新会话添加新行。创建该关联是特定的。

在我的主要功能中,我有以下代码。

fig = plt.figure()
ax = fig.add_subplot(111)
line,= plt.figure().plot(0,0)

在我的会话课程中。我有以下代码。

class Session:
x = []
y = []
# I think I should add a line here... but I am not sure 
# how to make this association to the main.

对于每个会话,它存储x和y值,我可以通过方法检索这些值。这部分很简单,但是将每一行与同一个图表相关联就是我遇到的麻烦。我该如何处理这个问题?

1 个答案:

答案 0 :(得分:1)

您可以多次致电.plot()。我添加了一个如何更改线条颜色的示例。我会把造型留给你。

import matplotlib.pyplot as plt

fig = plt.Figure()
ax = fig.add_subplot(111)

colors = ('b','g','r','c','m','y','k','w',)
sessions = (sess1, sess2, sess3)
for sess, color in zip(sessions, colors):
    ax.plot(sess.x, sess.y, color=color)

如果您想使用和/或重复使用,您的所有行itertools.cycle的一组特定颜色可以简化它的工作:

import itertools as it

colors = ('b','g','r',)
sessions = (sess1, sess2, sess3, sess4, sess5, sess6)
for sess, color in zip(sessions, it.cycle(colors)):
    ax.plot(sess.x, sess.y, color=color)