如果你想要一个直方图,你不需要在x值上附加任何“名称”,因为在x轴上你会有一个箱子:import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x = np.random.normal(size = 1000)
plt.hist(x, normed=True, bins=30)
plt.ylabel('Probability');
但是,如果数据点的数量有限,并且需要条形图,则可以将标签附着到x轴:x = np.arange(3)
plt.bar(x, height= [1,2,3])
plt.xticks(x+.5, ['a','b','c'])
如果这能解决你的问题,请告诉我。
编辑2018年11月26日
根据下面的注释,从Matplotlib 3.0.2开始,以下代码就足够了:x = np.arange(3)
plt.bar(x, height= [1,2,3])
plt.xticks(x, ['a','b','c']) # no need to add .5 anymore
编辑2019年5月23日
就直方图而言,不推荐使用normed参数:MatplotlibDeprecationWarning: The 'normed' kwarg was deprecated in Matplotlib 2.1 and will be removed in 3.1. Use 'density' instead.
因此,从Matplolib 3.1开始而不是:plt.hist(x, normed=True, bins=30)
必须写:import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x = np.random.normal(size = 1000)
plt.hist(x, density=True, bins=30) # density
plt.ylabel('Probability');