求助排查AttributeError: Unknown property axisbg代码错误
解决Matplotlib中
axisbg属性报错的问题 这个AttributeError很常见,原因很简单:你用的是Matplotlib 2.0及以上的新版本,而axisbg是旧版本(2.0之前)用来设置坐标轴背景色的参数,在新版本里已经被彻底移除了,取而代之的是facecolor参数。
除此之外,我还发现你代码里有两个小细节问题不修正的话,运行后还会出其他错误:
- 颜色值缺少
#前缀,比如'E6E6E6'应该写成'#E6E6E6',不然Matplotlib无法正确解析颜色; - 笔误:
ax.get_yaxislabels()应该是ax.get_yticklabels(),Matplotlib里没有get_yaxislabels这个方法。
下面是修正后的完整代码:
import matplotlib.pyplot as plt # 这里假设x是你已经准备好的数据,示例数据仅作演示 x = [1, 3, 5, 7, 9, 11, 13] ax = plt.axes(facecolor='#E6E6E6') # 替换axisbg为facecolor ax.set_axisbelow(True) plt.grid(color='w', linestyle='solid') # 隐藏边框 for spine in ax.spines.values(): spine.set_visible(False) # 设置刻度位置 ax.xaxis.tick_bottom() ax.yaxis.tick_left() # 设置刻度样式 ax.tick_params(colors='gray', direction='out') for tick in ax.get_xticklabels(): tick.set_color('gray') for tick in ax.get_yticklabels(): # 修正笔误 tick.set_color('gray') # 绘制直方图,修正颜色格式 ax.hist(x, edgecolor='#E6E6E6', color='#E6E6E6') plt.show()
这样运行应该就不会报错了,而且能得到你想要的灰色背景带白色网格的直方图样式。
内容的提问来源于stack exchange,提问作者Abhishek Kumar
相关产品推荐
相关产品推荐

