繁体   English   中英

matplotlib刻度标签不起作用

[英]matplotlib tick labels not working

我有两组数据:

Y = [0.8, 0.9, 0.5, 0.4…0.6]
X = [16,17,18,19…..216]
plt.plot(Y)
plt.xticks(np.arange(min(X), max(X)+1, 10))

这使:

在此处输入图片说明

我试图绘制此图,但由于X轴上有200个以上的点,因此我只想每10个显示一次X刻度。

但是现在不是X轴从16开始,而是从0开始,第一个标签出现在16,尽管它不是正确的对应Y值。

我如何绘制从16开始的X,从10开始的每10点步进,一直到每10的216点,例如16/26/36/46 ...

谢谢

使用pyplot界面确实很麻烦/令人困惑。 我将直接与Axes对象进行交互:

import numpy as np
import matplotlib.ticker as mticker
import matplotlib.pyplot as plt
%matplotlib inline

fig, ax = plt.subplots(figsize=(8, 3))
xtickslocs = np.arange(16, 217, step=10)
#ax.plot(x_data, y_data, ...)
ax.xaxis.set_major_locator(mticker.FixedLocator(xtickslocs))
ax.set_xlim(left=-5, right=225) # change this to suite your needs

这给了我:

在此处输入图片说明

关键是您应该对xticks使用2个数组,第一个是要放置标签的位置,第二个是标签本身。

plt.xticks(np.arange(16, 216, step=10), np.arange(16, 216, step=10))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM