我有几组 (x,y) 数据,我想将它们绘制为同一图上的线图。我对 matplotlib 执行此操作没有任何问题,但我无法使用 Chaco 获得相同的结果。代码和输出如下所示。
我的基于 matplotlib 的代码如下所示:
for track in tracks:
xw = np.array(track['xw'])
yw = np.array(track['yw'])
plt.plot(xw, yw, 'b-')
if not plt.gca().yaxis_inverted():
plt.gca().invert_yaxis()
我的基于 Chaco 的代码如下所示:
for track in tracks:
x = np.array(track['xw'])
y = np.array(track['yw'])
plot = create_line_plot((x,y), color='blue', width=1.0)
plot.origin = 'top left'
container.add(plot)
if track == tracks[0]:
add_default_grids(plot)
add_default_axes(plot)
我基于 matplotlib 的输出如下所示:
我基于 chaco 的输出如下所示:
最佳答案
我上面基于 Chaco 的代码的问题是我使用的是 OverlayPlotContainer ( container
)。因此,每个图(来自 create_line_plot
)都是用自己的轴绘制的,而不是每个图都绘制在同一组轴上。以下工作:
pd = ArrayPlotData()
plot = Plot(pd)
for ii, track in enumerate(tracks):
x = np.array(track['xw'])
y = np.array(track['yw'])
x_key = 'x'+str(ii)
y_key = 'y'+str(ii)
pd.set_data(x_key, x)
pd.set_data(y_key, y)
plot.plot((x_key, y_key), color='blue', origin='top left')
关于enthought - 如何使用 Chaco 在同一轴上绘制多个 (x,y) 系列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16224346/