求助:如何将Matplotlib箱线图X轴1-4刻度替换为自定义股票标签?
解决Matplotlib箱线图X轴刻度标签不生效的问题
嘿,我来帮你搞定这个小问题!你遇到的情况是因为你把设置刻度标签的代码放在了绘制箱线图之前——Matplotlib的boxplot()函数在执行时会自动生成X轴的刻度和标签,这就把你之前用set_xticklabels()设置的内容给覆盖掉了。
这里有两种简单的解决方案:
方案一:调整代码顺序,先画箱线图再设置标签
把ax.set_xticklabels()移到ax.boxplot()之后,这样就不会被覆盖了:
data = [df['nok'], df['msft'], df['ibm'], df['aapl']] fig = plt.figure() ax = fig.add_subplot(111) ax.set_title('BoxPlot Example') ax.set_xlabel('Stock') ax.set_ylabel('Price') ax.grid(zorder=0) # 先绘制箱线图 ax.boxplot(data, widths = 0.6, patch_artist = True) # 再设置X轴刻度标签 ax.set_xticklabels(['nok', 'msft', 'ibm', 'aapl'])
方案二:直接在boxplot中指定labels参数
更简洁的方式是利用boxplot()自带的labels参数,一步到位设置标签:
data = [df['nok'], df['msft'], df['ibm'], df['aapl']] fig = plt.figure() ax = fig.add_subplot(111) ax.set_title('BoxPlot Example') ax.set_xlabel('Stock') ax.set_ylabel('Price') ax.grid(zorder=0) # 绘制箱线图时直接指定标签 ax.boxplot(data, widths = 0.6, patch_artist = True, labels=['nok', 'msft', 'ibm', 'aapl'])
两种方法都能完美解决你的问题,选你觉得顺手的就行~
内容的提问来源于stack exchange,提问作者Ann Kriebel
相关产品推荐
相关产品推荐

