Python中pandas绘制的柱状图如何调整样式及移除多余输出文本
柱状图属性调整方法
你可以直接通过matplotlib的内置参数调整所有你需要的属性,常见操作如下:
- 调整画布尺寸:创建画布时指定
figsize参数,示例:plt.figure(figsize=(10,6)),两个数值分别对应画布的宽度、高度,单位为英寸。 - 调整柱子颜色:调用
bar()方法时传入color参数即可,支持直接传入颜色名(比如color='steelblue')、十六进制颜色码(比如color='#2E86AB'),如果需要给不同柱子设置不同颜色,直接传入颜色列表即可。 - 调整标签属性:
- 坐标轴标签:用
plt.xlabel('自定义X轴标签')、plt.ylabel('自定义Y轴标签')设置,还可以加fontsize参数调整字号。 - 图表标题:用
plt.title('自定义图表标题')设置。 - 柱子数值标签:可以遍历
bar()返回的柱子对象,用text()方法在每个柱子上方标注对应数值。
- 坐标轴标签:用
- 其他常用调整:可以用
plt.xticks(rotation=45)旋转X轴标签避免重叠,用plt.grid(axis='y', alpha=0.3)添加浅灰色纵向网格线提升可读性。
完整示例代码
import matplotlib.pyplot as plt # 示例数据 x = ['类别1', '类别2', '类别3', '类别4'] y = [20, 35, 25, 40] # 指定画布尺寸 plt.figure(figsize=(8, 5)) # 绘制柱状图并指定不同柱子颜色 bars = plt.bar(x, y, color=['#F94144', '#F3722C', '#F8961E', '#F9C74F']) # 设置标签和标题 plt.xlabel('分类', fontsize=12) plt.ylabel('数值', fontsize=12) plt.title('分类数值统计', fontsize=14) # 给每个柱子添加顶部数值标签 for bar in bars: height = bar.get_height() plt.text(bar.get_x() + bar.get_width()/2, height, f'{height}', ha='center', va='bottom') plt.show()
去除<AxesSubplot:...>多余输出的方法
这个输出是matplotlib绘图函数的返回值打印,两种方法都可以解决:
- 方法1:在绘图代码的最后一行末尾加英文分号,比如你最后一行绘图代码是
plt.bar(...),改成plt.bar(...);即可抑制返回值输出。 - 方法2:把绘图函数的返回值赋值给一个变量,比如
ax = plt.bar(x, y),后续要调整属性还可以直接用这个变量操作,也不会输出多余内容。
内容的提问来源于stack exchange,提问作者Nadavsh
相关产品推荐
相关产品推荐

