文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Matplotlib绘制柱状图

2023-10-24 06:49

关注

利用matplotlib绘制柱状图

柱状图是一种用矩形柱来表示数据分类的图表,柱状图可以垂直绘制,也可以水平绘制,它的高度与其所表示的数值成正比关系。柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值。

绘制柱状图的命令为:

bar()

1.简单柱状图绘制

下面从建造一个简单的柱状图开始,代码如下

import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data)plt.show() # 显示图形

2.修改x轴的标签

假设数据为选课的学生人数,那么横轴就是每个科目(subject),我们可以通过如下方式修改x轴的标签(数学(math),语文(language),英语(english),体育(sport),政治(politics))。

import matplotlib.pyplot as pltdata = [5, 10, 20, 15, 25]subject = ['math', 'language', 'english', 'sports', 'politics']plt.bar(subject, data)plt.show()

也可以通过xticks函数修改,参考下方绘制并列柱状图例子。

3.设置柱体颜色

(1)一次性改变一个颜色

通过 facecolor(fc) 参数可以设置柱体颜色,比如将柱体设置成红色:

import matplotlib.pyplot as pltdata = [5, 10, 20, 15, 25]subject = ['math', 'language', 'english', 'sports', 'politics']plt.bar(subject, data, fc='r') plt.show()
(2)一次性改变多个颜色

也可以通过 color 参数一次性设置多个颜色

import matplotlib.pyplot as pltdata = [5, 10, 20, 15, 25]subject = ['math', 'language', 'english', 'sports', 'politics']plt.bar(subject, data, color=['r', 'b', 'y']) # 目前pyhton3.9版本不支持写成{color=’rby‘}plt.show()

4.柱状图的美化

(1)柱状图内部填充

hatch='' 可设置填充图案,如/,-,+,o,O,.等

import matplotlib.pyplot as pltdata = [5, 10, 20, 15, 25]subject = ['math', 'language', 'english', 'sports', 'politics']plt.bar(subject, data, color=['r', 'b', 'y'], hatch='/') plt.show()
(2)添加柱状图的边框

相关的关键字参数为:edgecolor (ec),linestyle ( ls),linewidth (lw)

import matplotlib.pyplot as pltdata = [5, 10, 20, 15, 25]subject = ['math', 'language', 'english', 'sports', 'politics']plt.bar(subject, data, color=['r', 'b', 'y'], hatch='/', ec='g', ls='-', lw=5)plt.show()

ec参数选择边框颜色,ls参数选择边框样式,lw参数调整边框宽度。

5.绘制并列柱状图

主要需要控制好每个柱之间的距离,比如:

import numpy as npimport matplotlib.pyplot as plt  # 导入所需库# 导入数据x = np.arange(5)x1 = [59, 82, 75, 65, 72]x2 = [68, 82, 77, 89, 61]x3 = [90, 71, 86, 53, 62]  # 设置所需参数total_width, n = 0.8, 3  # (柱状图的默认宽度值为 0.8)width = total_width / nx = x - (total_width - width) / 2  # 现在的x是每个并列柱的第一柱的中心横坐标# 绘制图plt.bar(x, x1,  width=width, label='language', fc='b')plt.bar(x + width, x2, width=width, label='math', fc='r')plt.bar(x + 2 * width, x3, width=width, label='english', fc='y')plt.xticks(np.arange(5), ['tom', 'jack', 'bob', 'jone', 'lucy'])  # 将横坐标修改为学生姓名plt.legend()  # 添加图例plt.show()

也可以通过

plt.ylabel('') # 添加y轴标签
plt.title('') # 添加图标题

进而完善图形,这里就不进行演示了

6.绘制堆叠柱状图

可以通过 bottom 参数绘制堆叠柱状图。

import numpy as npimport matplotlib.pyplot as pltx = np.arange(3)x1 = np.random.random(3)x2 = np.random.random(3)# 中文乱码处理plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']# 坐标轴负号处理plt.rcParams['axes.unicode_minus'] = Falseplt.bar(x, x1, label='语文')plt.bar(x, x2, bottom=x1, label='数学')plt.legend()plt.show()

7.绘制条形图

barh方法绘制条形图,其剩余画图方法与柱状图类似

import matplotlib.pyplot as pltdata = [36, 27, 15, 29, 10]plt.barh(range(len(data)), data)plt.show()

来源地址:https://blog.csdn.net/weixin_65350557/article/details/128678855

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯