【发布时间】:2014-10-19 06:45:58
【问题描述】:
这是一些使用 matplotlib 对多个不同系列进行散点图的代码,然后添加 y=x 行:
import numpy as np, matplotlib.pyplot as plt, matplotlib.cm as cm, pylab
nseries = 10
colors = cm.rainbow(np.linspace(0, 1, nseries))
all_x = []
all_y = []
for i in range(nseries):
x = np.random.random(12)+i/10.0
y = np.random.random(12)+i/5.0
plt.scatter(x, y, color=colors[i])
all_x.extend(x)
all_y.extend(y)
# Could I somehow do the next part (add identity_line) if I haven't been keeping track of all the x and y values I've seen?
identity_line = np.linspace(max(min(all_x), min(all_y)),
min(max(all_x), max(all_y)))
plt.plot(identity_line, identity_line, color="black", linestyle="dashed", linewidth=3.0)
plt.show()
为了实现这一点,我必须跟踪散点图中的所有 x 和 y 值,以便知道identity_line 应该从哪里开始和结束。即使我没有绘制所有点的列表,有没有办法让 y=x 显示出来?我认为 matplotlib 中的某些东西可以在事后为我提供所有点的列表,但我无法弄清楚如何获得该列表。
【问题讨论】:
标签: python matplotlib plot scatter-plot