当前位置: 首页 > news >正文

python --Matplotlib详解

安装

pip install matplotlib

导包

import matplotlib.pyplot as plt

绘制散点图

如果输入的是两个列表,一个表示 x 轴的值,一个表示 y 轴的值,那么就可以在直角坐标系中划出很多个点,然后将这些点用指定的线段连接起来就得到了散点图。

可以使用 plt.plot(x, y, 风格) 来达到目的,其中的风格有很多种,如点状、小叉、圆圈、不同颜色等。

import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [2, 4, 2, 6]
y1 = [e+1 for e in y]
y2 = [e+2 for e in y]
plt.plot(x, y, "b.")                  # b:蓝色,.:点
plt.plot(x, y1, "ro")                  # r:红色,o:圆圈
plt.plot(x, y2, "kx")                 # k:黑色,x:x字符(小叉)
plt.show()                            # 在窗口显示该图片

在这里插入图片描述
我们可以看到不同颜色、不同线型、不同的点的形状。

上述代码的第 9 行用来显示图片,但这并不是最好的使用方式。本章后面的部分会将产生的图片保存到 png 文件中。可以使用下面的代码来替换第 9 行的代码:

plt.savefig("demo1.png")

绘制折线图

折线图和点状图类似,只是在风格上有所不同。我们需要指定线型,如“-”表示实线、“–”表示虚线、“-.”表示带点的虚线、“:”表示完全用点来组成的虚线。

import matplotlib.pyplot as plt
x  = [1, 2, 3, 4]
y  = [1, 2, 3, 4]
y1 = [e+1 for e in y]                # 计算y的值
y2 = [e+2 for e in y]
y3 = [e+3 for e in y]
plt.plot(x, y,  "b.-")               # b:蓝色,.:点,-:线
plt.plot(x, y1, "ro--")              # r:红色,o:圆圈,--:短线连接起来
plt.plot(x, y2, "kx-.")              # k:黑色,x:x字符,-.:点和线
plt.plot(x, y3, "c*:")               # c:蓝绿色,*:*字符,::点组成的线
plt.savefig("demo1.png")            # 将图片保存到文件中

在这里插入图片描述
其实参数 x 是可选的,如果不填写,那么 x=[1,2,3,…]。例如上面的代码可以写成下面的样子,而含义没有任何差别;

import matplotlib.pyplot as plt
y  = [1, 2, 3, 4]            # 4组数据
y1 = [e+1 for e in y]
y2 = [e+2 for e in y]
y3 = [e+3 for e in y]
plt.plot(y,  "b.-")           # 没有x参数
plt.plot(y1, "ro--")          # r:红色,o:圆圈,--:短线连接起来
plt.plot(y2, "kx-.")          # k:黑色,x:x字符,-.:点和线
plt.plot(y3, "c*:")           # c:蓝绿色,*:*字符,::点组成的线
plt.savefig("demo3.png")

颜色的表示法对应关系

表示法颜色
‘b’蓝色
‘g’绿色
‘r’红色
‘c’蓝绿色
‘m’品红
‘y’黄色
‘k’黑色

点的样式对应关系

表示法颜色
‘o’小圆圈
‘v’朝下的三角形
‘^’朝上的三角形
‘>’朝右的三角形
‘<’朝左的三角形
‘x’
‘+’加号
‘s’方框

线型的样式对应关系

表示法颜色
‘-’实线
‘–’虚线
‘-.’带有点的虚线
‘:’点组成的虚线

绘制柱状图

柱状图和散点图类似,也是需要两个参数 x 和 y,但画出来的效果差别很大,而且需要使用 bar() 函数而不是 plot() 函数

import matplotlib.pyplot as plt
x  = [1, 2, 3, 4]
y  = [1, 2, 3, 4]
y1 = [e+1 for e in y]
y2 = [e+2 for e in y]
y3 = [e+3 for e in y]
plt.bar(x, y)
plt.savefig("bardemo1.png")

在这里插入图片描述

可以修改柱体的颜色,通过参数 color 来完成。例如将以上代码的第 7 行进行如下修改:

plt.bar(x, y, color="red")

也可以设定柱体边框的颜色,通过参数 edgecolor 来完成。例如将以上代码的第 7 行修改为:

plt.bar(x, y, color="red", edgecolor="black")

在这里插入图片描述
x 轴除了可以是数字信息外,也可以是其他信息。例如可以用柱状图来表示几种编程语言的受欢迎程度,代码如下:

import matplotlib.pyplot as plt
language = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')
x_pos = range(len(language))  # [0, 1, 2, 3, 4, 5, 6]
pop = [10, 8, 6, 4, 2, 1]
plt.bar(x_pos, pop, align='center', alpha=0.5)
plt.xticks(x_pos, language)
plt.ylabel('Popularity')
plt.title('Programming Language Popularity)
plt.savefig("demo4.png")

在这里插入图片描述
绘制水平柱状图

将柱状图中的 bar 改成 barh 即可,barh 表示 horizon bar,就是水平的柱状图。其用法和垂直的柱状图类似,下面是一个使用的例子:

import matplotlib.pyplot as plt
language = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')
x_pos = range(len(language))  # [0, 1, 2, 3, 4, 56]
pop = [10, 8, 6, 4, 2, 1]
plt.barh(x_pos, pop, align='center', alpha=0.5)
plt.yticks(x_pos, language)
plt.xlabel('Popularity')
plt.title('Programming Language Popularity')
plt.savefig("demo5.png")

在这里插入图片描述

绘制饼图

可以使用 pie() 函数来画饼图。下面是最简单的饼图,表示 4 个城市的高技术产值。

import matplotlib.pyplot as plt
lbs = ["Beijing", "Shanghai", "Guangzhou", "Shenzhen"]        # 标签
vals = [50, 20, 10, 20]
plt.pie(vals, labels=lbs)
plt.savefig("piedemo1.png")

在这里插入图片描述
也可以使用 explode 参数表示某个单元是否被切出来,以及切出来的长度。例如希望上海和广州被切出来,那么可以使用下面的代码:

import matplotlib.pyplot as plt
lbs = ["Beijing", "Shanghai", "Guangzhou", "shenzhen"]        # 标签
vals = [50, 20, 10, 20]# 0表示不切出来,否则表示切出来,值越大切出的距离越大
explode = (0, 0.1, 0.2, 0)
plt.pie(vals, explode=explode, labels=lbs)
plt.savefig("piedemo2.png")

在这里插入图片描述

也可以用 colors 参数来表示各个块的颜色,这也是一个字符串的列表,如下面的代码所示:

import matplotlib.pyplot as plt
lbs = ["Beijing", "Shanghai", "Guangzhou", "shenzhen"]
vals = [50, 20, 10, 20]                                # 值的列表
explode = (0, 0.1, 0.2, 0)                            # 切出的长度
color_list =['red', 'blue', 'yellow', 'gray']        # 颜色列表
plt.pie(vals, explode=explode, colors=color_list, labels=lbs)    # 饼图
plt.savefig("piedemo3.png")                            # 保存到png文件中

在这里插入图片描述

http://www.lryc.cn/news/43659.html

相关文章:

  • 手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!
  • 教育行业ChatGPT的新挑战
  • 内存泄漏 定位方法
  • es-head插件插入查询以及条件查询(五)
  • 安装python教程并解决Python安装完没有Scripts文件夹问题
  • postman的断言、关联、参数化、使用newman生成测试报告
  • 春招大盘点:找工作除了招聘网站还有哪些渠道?
  • eNSP 构建基本WLAN
  • Python是不是被严重高估了?
  • 给你一个购物车模块,你会如何设计测试用例?【测试用例设计】
  • 【wps】【毕业论文】三线表的绘制
  • Spring Cloud Alibaba 多租户saas企业开发架构技术选型和设计方案
  • Unity IL2CPP 游戏分析入门
  • Python的23种设计模式(完整版带源码实例)
  • OAuth2协议
  • LeetCode-115. 不同的子序列
  • kubernetes scheduler 源码解析及自定义资源调度算法实践
  • MySQL插入数据
  • 从GPT-4、文心一言再到Copilot,AIGC卷出新赛道?
  • 1.2 从0开始学Unity游戏开发--运行原理
  • 【微信小程序】如何获得自己当前的定位呢?本文利用逆地址解析、uni-app带你实现
  • 92年程序员发帖晒薪资称自己很迷茫,网友:老弟你可以了
  • 阿里四面,居然栽在一道排序算法上
  • macOS 13.3(22E252)/12.6.4/11.7.5正式版发布
  • MPP数据库简介及架构分析
  • centos7配置pytorch和tensorflow
  • Kafka在Mac下的安装与使用
  • AndroidStudio相对布局
  • 如何用iOS自带摄像头进行拍摄获取视频流以及OpenCV图像处理实时显示
  • 智安网络|为什么说防火墙是我们信息安全的第一道防线?