【运营的Python指南】绘制图表Matplotlib快速入门

举报
AnRFDev 发表于 2021/07/19 14:07:52 2021/07/19
【摘要】 写给运营人员的Python指南。Matplotlib库入门和简单例子。绘制一个折线图。

绘制图表是运营工作中常见的需求。前面我们试着用Python操作Excel来绘制图表,其实调用的是Excel里的图表功能。
接下来我们利用Matplotlib来绘制图表。

Matplotlib 是一个综合性的库。它是 Python 中的可视化工具,可创建静态、带动画和可交互的图表
Matplotlib 官网 https://matplotlib.org/
官方使用手册 https://matplotlib.org/stable/users/index.html

安装

官方给出的安装方法是使用pip

python -m pip install -U pip
python -m pip install -U matplotlib

我们使用PyCharm,也可以先打

import matplotlib.pyplot as plt

其中matplotlib下面有红线,跟着PyCharm的提示,把缺失的包装上就好。

简单例子-绘制折线图

接下来使用matplotlib绘制一个简单的折线图,先把这个库用起来。

准备数据

我们用math.sin来模拟。x从0到100,y=sin(x)。一个简单的sin函数。

绘制

准备数据,然后绘制出图表。完整代码如下

import math
import matplotlib.pyplot as plt

def demo1():
    x_list = []
    y_list = []
    for i in range(0, 100):
        x_list.append(i)
        y_list.append(math.sin(i * 0.1))
    plt.plot(x_list, y_list)
    plt.show()


if __name__ == '__main__':
    print('rustfisher 绘制折线图事例1')
    demo1()

Mac的PyCharm运行下能得到这样的图

intro1.png

代码中

  • plt.plot(x_list, y_list)指定x,y值,都是列表。这2个列表的长度要相等。
  • plt.show()是直接绘制图表。

可以看到图中缺少很多元素。图的标题没有指定,x轴和y轴都没有说明。

增加一些细节

为操作图表,我们需拿到图表对象ax = plt.gca()

ax = plt.gca()
ax.set_title('rustfisher.com mapplotlib example')
ax.set_xlabel('x')
ax.set_ylabel('y = sin(x)')
ax.grid()
  • set_title 设置图表标题
  • set_xlabel 设置x轴名称
  • set_ylabel 设置y轴名称
  • grid() 显示格子

修改后的代码如下

def demo1():
    x_list = []
    y_list = []
    for i in range(0, 100):
        x_list.append(i)
        y_list.append(math.sin(i * 0.1))
    ax = plt.gca()
    ax.set_title('rustfisher.com mapplotlib example')
    ax.set_xlabel('x')
    ax.set_ylabel('y = sin(x)')
    ax.grid()
    plt.plot(x_list, y_list)
    plt.show()

运行结果
2.png

操作说明

从前面图中我们可以看到下面有一排按钮。这些按钮提供了一些操作图表的功能。
从左到右我们排个序1,2,3,4…

btns.png

  1. 让图表恢复到初始状态
  2. 上一个图表状态
  3. 下一个图表状态
  4. 移动图表
  5. 缩放图表
  6. 调整图表显示的位置
    1. 点击缩放按钮后,鼠标按住左键去框选一个区域,松开左键后就是放大那个区域。
    2. 按住右键再框选,则是缩小显示区域。
  7. 保存图片

直接保存

如果我们想直接保存得到的图片,可以不调用show方法。而是调用savefig()方法。

# plt.show()
plt.savefig('out.png')

参考

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。