轴绘制在python中 - matplotlib

时间:2013-04-09 18:05:35

标签: python graph matplotlib gridlines

我目前有一个我的数据图,红色的垂直线表示“平均旋转次数”的点。我想知道是否有可能将“百万像素,数百万”的点的标记更改为蓝/黑十字,并将主/次网格线放在两个轴上?在线提供的所有帮助似乎都来自我们没有的模块。 另外,您如何将我绘制的红线标记为“平均旋转次数”?

非常感谢。

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 个答案:

答案 0 :(得分:1)

使用marker='+'制作marker a thin cross

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 :(得分:1)

我认为你想要的是:

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

除非您需要将每个标记设置为不同的大小或颜色,否则我建议您使用plot代替scatter,因为它更快,以后您可以更轻松地修改它(如果您想要动画)。