绘制x轴点的自定义文本
我正在使用matplotlib和python绘制一个阴谋,如下面的示例代码。
x = array([0,1,2,3]) y = array([20,21,22,23]) plot(x,y) show()
因为它是在x轴上面的代码,我会看到绘制值0.0, 0.5, 1.0, 1.5
即我的参考x值相同的值。
有没有反映将x的每个点映射到不同的string? 例如,我想要X轴显示月份名称(stringJun, July,...
)或其他string像人名( "John", "Arnold", ...
)或时钟时间( "12:20", "12:21", "12:22", ..
)。
你知道我能做什么或有什么function可以看看吗?
对于我的目的可以是matplotlib.ticker
的帮助?
您可以使用pylab.xticks手动设置xticks(和yticks):
import matplotlib.pyplot as plt import numpy as np x = np.array([0,1,2,3]) y = np.array([20,21,22,23]) my_xticks = ['John','Arnold','Mavis','Matt'] plt.xticks(x, my_xticks) plt.plot(x, y) plt.show()
@unutbu的答案完美适用于pyplot – MATLAB风格的绘图。
但是,对于matplotlib的面向对象的API,可以使用以下代码在axis
的x-ticks
上绘制自定义文本:
x = np.arange(2,10,2) y = x.copy() x_ticks_labels = ['jan','feb','mar','apr','may'] fig, ax = plt.subplots(1,1) ax.plot(x,y) # Set number of ticks for x-axis ax.set_xticks(x) # Set ticks labels for x-axis ax.set_xticklabels(x_ticks_labels, rotation='vertical', fontsize=18)