[英]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.