【问题标题】:Axis plotting in python - matplotlibpython中的轴绘图-matplotlib
【发布时间】:2013-04-01 07:36:42
【问题描述】:

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

非常感谢。

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()

【问题讨论】:

    标签: python graph matplotlib gridlines


    【解决方案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()
    

    【讨论】:

      【解决方案2】:

      我想你想要的是:

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

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

      【讨论】:

      • 好的,谢谢你,我现在有一个更好的情节。你知道我会如何为我的“百万旋转,百万”部分添加一个图例吗?在我的传说中还有一点关于“平均旋转”?
      • 你应该问一个关于你的传奇的新问题(或者搜索我知道已经回答的现有问题)。
      猜你喜欢
      • 2012-05-08
      • 2020-12-15
      • 2020-06-09
      • 1970-01-01
      • 2017-01-01
      • 2010-10-20
      相关资源
      最近更新 更多