【问题标题】:How to change xticks with matplotlib? [duplicate]如何使用 matplotlib 更改 xticks? [复制]
【发布时间】:2019-06-25 02:40:52
【问题描述】:

我想使用 matplotlib 更改绘图上的 xticks,例如用字符串替换。根据matplotlib手册https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.xticks.html我做了以下代码:

import matplotlib.pyplot as plt
import numpy as np

x=np.arange(10)
y=x**2
plt.figure()
plt.plot(x,y)
locs, labels=plt.xticks()
new_xticks=['test' for d in locs]
plt.xticks(new_xticks, rotation=45, horizontalalignment='right')

问题是当我这样做时,x轴上的刻度没有被修改,我得到以下错误

ConversionError:无法将值转换为轴单位:['test', “测试”、“测试”、“测试”、“测试”、“测试”、“测试”]

编辑:我希望在原始图的同一位置有刻度,其中 x 轴不超过最小值和最大值,如下图所示:

提前感谢您的帮助!

EDIT2 :它不是重复的,因为我不使用子图直接做它

【问题讨论】:

    标签: python python-3.x matplotlib


    【解决方案1】:

    做这样的事情:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.arange(10)
    y=x**2
    plt.figure()
    plt.plot(x,y)
    locs, labels=plt.xticks()
    x_ticks = []
    new_xticks=['test' for d in locs]
    plt.xticks(locs,new_xticks, rotation=45, horizontalalignment='right')
    plt.show()
    

    输出:

    【讨论】:

    • 非常感谢,但我仍然有一个问题:在这种情况下,第一个值在情节开始之前,最后一个值在情节开始之后。如果没有这个,如何用字符串替换与绘图相同的值和比例?
    【解决方案2】:

    您正在修改刻度。但是刻度必须是数字。如果您想修改刻度-标签,您可以通过

    plt.xticks(locs, new_xticks)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 2018-08-21
      • 2019-05-09
      • 1970-01-01
      • 2021-01-08
      • 2018-08-05
      • 2021-07-10
      相关资源
      最近更新 更多