Python中的轴绘制 - matplotlib

4
我目前有一个数据图,用红色竖线标记“平均旋转次数”的点。我想知道是否可以将“millionspins,millions”点的标记改为蓝色/黑色细十字形,并在两个轴上放置主/次网格线?所有可用的在线帮助似乎都集成在我们没有的模块中。 另外,如何给我绘制的红线加上标签“平均旋转次数”?
非常感谢。
matplotlib.pyplot.scatter(millionspins,millions)
plt.xlabel("Number of spins")
plt.plot([averageiterations,averageiterations],[1000000,1500000],'r-')
plt.xlim(0,max(millionspins))
plt.ylim(1000000,max(millions))
plt.ylabel("Bank")
plt.xlim(0,max(millionspins))
plt.ylim(1000000,max(millions))
show()
2个回答

1

使用marker='+'标记点变为细十字

plt.scatter(millionspins, millions, c='b', marker='+')

使用plt.grid来显示网格线:
plt.grid(True, which='both')

顺便提一下,您可以使用plt.axvline创建红色垂直线。这样,如果用户重新调整图表的比例,垂直线的端点就不会显示出来。
import matplotlib.pyplot as plt
import numpy as np
N = 100
millionspins = np.random.randint(10000000, size=N)
millions = np.random.randint(10000000, size=N)
averageiterations = millionspins.mean()

plt.scatter(millionspins, millions, marker='+')
plt.axvline([averageiterations], color='r')

plt.xlabel("Number of spins")
plt.ylabel("Bank")

plt.xlim(0,max(millionspins))
plt.ylim(1000000,max(millions))

plt.grid(True, which='both')
plt.show()

enter image description here


1
我认为你想要的是:

ax = plt.gca()
ax.grid(True)
ax.plot(millionspins, millions, marker='+', color='b')

除非你需要使每个标记的大小或颜色不同,否则建议使用plot而不是scatter,因为它更快且可以更轻松地在以后进行修改(如果您想进行动画)。


好的,谢谢您。我现在有一个更好看的图了。您知道我该如何为“millionspins,millions”部分添加图例吗?还有“average spins”的另一部分图例? - joe oxley
你应该提出一个新问题(或搜索现有的问题,因为我知道已经有人回答了)关于你的传奇。 - tacaswell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接