如何使用 matplotlib 更改 xticks? [复制]

Posted

技术标签:

【中文标题】如何使用 matplotlib 更改 xticks? [复制]【英文标题】:How to change xticks with matplotlib? [duplicate] 【发布时间】: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 :它不是重复的,因为我不使用子图直接做它

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于如何使用 matplotlib 更改 xticks? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用matplotlib使绘图的xtick标签成为简单的图形?

Matplotlib - 将 Xticks 更改为线上的值而不是数据点

删除 matplotlib 图中的 xticks?

如何更改 matplotlib 图的日期时间刻度标签频率?

matplotlib如何获取坐标轴刻度值?

matplotlib之xticks()函数设置X轴方法--刻度、标签