绘制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,可以使用以下代码在axisx-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) 

在这里输入图像说明