前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你用matplotlib绘制柱状图

手把手教你用matplotlib绘制柱状图

原创
作者头像
Aion
修改2024-02-23 16:40:25
36400
代码可运行
修改2024-02-23 16:40:25
举报
运行总次数:0
代码可运行

本篇为体验社区新功能,旨在共同学习,如有不正确、不到位的地方,还望指正。

引言

「Python」 是一门编程语言,可以在服务器上使用 Python 来创建 Web 应用程序,他主要有以下用途:

  1. Web 开发(服务器端)
  2. 软件开发
  3. 数学
  4. 系统脚本
  5. 文本检索
  6. 数据筛选

等等……关于Python可以参考【引用-1】

什么是Matplotlib

丰富的第三方模块赋予了pythan强太的能力,而matplotlib作为python最流行的可视化模块之一,有着功能强大、用法简便。Matplotlib 是一个强大的 Python 面向对象的绘图库,他是一个第三方开源可视化绘图项目,用于创建各种类型的静态、动态和交互式图表。关于matplotlib可以参考【引用-2】、【引用-3】。

对于新手而言:其上手难度低,仅需要几行代码就可以创建一个发表质量的图片,而且同时支持静态和动态图片。对于开发者而言:其丰富的子模块提供了对图片中各个细节的精确控制,可以实现高度定制的可视化效果。

关于Matplotlib模块

在Matplotlib绘图库中有很多可视化模块功能,pyplot应该是算是最常被使用的一个类,下面我们就开始使用pyplot来作为实践,绘制一个柱状图,关于柱状图可以参考【引用-4】。

如果我们想要运行Matplotlib程序,那么在我们电脑环境上面,我们需要安装Python后,还需要Matplotlib库。如果是在线运行环境中,我们无需安装这些程序,可以直接引入使用,下面就让我带你一起玩转Matplotlib吧。

演示步骤

(1)引入第三方类库

我们这里使用import引入第三方类库matplotlibnumpy

import matplotlib.pyplot

import numpy

为了后续方便使用,我们在通常情况下都会给库起一个别名,例如matplotlib.pyplot可以使用as方式起一个别名,名称为plt

import matplotlib.pyplot as plt

import numpy as np

(2)绘制柱状图

从官方文档中我们可以看到如何定义一个柱状图,这个函数的返回值为一个容器。

(3)柱状图参数

从官方文档中我们可以看到如何根据条件输入参数值。

  • x:x坐标,为浮点数或者类似数组的数据。
  • height:高度,为浮点数或者类似数组的数据。
  • width:宽度,为浮点数或者类似数组的数据,如果不写则默认为0.8。
  • bottom:底部,为浮点数或者类似数组的数据,如果不写则默认为0。
  • align:位置,有中间的选项,默认为中间。

(4)其他参数

其他参数有很多,此处不在讲解,只罗列在本次演示中使用的参数。其他参数可以参考【引用-5】。

  • edgecolor:边颜色,颜色或者颜色列表。
  • linewidth:线宽度,浮点数或类似数组,可选项,条形边缘的宽度,如果为0,则不绘制边缘。

(5)显示柱状图

显示柱状图,我们是可以pyplot函数show方法,其他的图形也可以使用这个方法进行图形展示和渲染。

plt.show()

完整的演示代码

点击运行按钮,弹出自动运行页面。

运行按钮
运行按钮

可以执行下面的代码,等待结束可,可以看到具体的效果。

代码语言:python
代码运行次数:0
复制
import numpy as np

# 引入依赖
import matplotlib.pyplot as plt

# 使用样式
plt.style.use('_mpl-gallery')

# 创建数据
x = 0.5 + np.arange(8)
y = [4.8, 5.5, 3.5, 4.6, 6.5, 6.6, 2.6, 3.0]

# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(x, y, width=1, edgecolor="white", linewidth=0.7)
ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
       ylim=(0, 8), yticks=np.arange(1, 8))

# 将输出保存为图片
plt.savefig('plot.jpg')

运行成果展示

下面就是使用社区新功能【在线运行代码块】运行后得到的效果图展示。

问题分析

I 关于中文支持

Matplotlib 中文显示不是特别友好,要在 Matplotlib 中显示中文,我们可以通过两个方法

  • 设置 Matplotlib 的字体参数。
  • 下载使用支持中文的字体库。

II 在线运行代码块性能

【第一次】

第一次运行时需要等待片刻,后续再次执行基本上都是1000ms内(当前演示所得结果,其他另说)

【后续点击运行】

时间明显很少了,大约在1000ms内,我试过几次。

总结

其实对于pyplot绘制图形,无论是我们上述提到的哪一种,无非需要具有以下两种特点:数据和样式配置。通过本文,可以快速了pyplot,Matplotlib的优点是:

(1)简单易用,社区版支持度高,有很多易用API,轻松创建各种类型的图表,社区也有很多大量的资源和案例;

(2)高度定制化,灵活可用,可以设置颜色、字体、边框、线条等。

(3)可视化效果好,输出高质量图片,容易上手。

希望本文能帮助您理解Python中第三方库的实现过程,也希望能够为您在绘图开发中提供一些使用帮助。

[引用]

  1. https://www.python.org/
  2. https://github.com/matplotlib/matplotlib
  3. https://matplotlib.org/
  4. https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.bar.html#matplotlib.axes.Axes.bar
  5. https://github.com/matplotlib/matplotlib/blob/v3.8.2/lib/matplotlib/axes/_axes.py#L2263-L2573

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 什么是Matplotlib
  • 关于Matplotlib模块
  • 演示步骤
    • (1)引入第三方类库
      • (2)绘制柱状图
        • (3)柱状图参数
          • (4)其他参数
            • (5)显示柱状图
            • 完整的演示代码
            • 运行成果展示
            • 问题分析
              • I 关于中文支持
                • II 在线运行代码块性能
                • 总结
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                http://www.vxiaotou.com