数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。

绘制折线图:

python 复制代码
import matplotlib.pyplot as plt
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y=[61,72,66,79,80,88,85]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y)
plt.show()

效果图:

如果要在一张图上显示两个折线图,只需要调用两次plt.plot(),并且显示图例,在调用 plt.plot() 方法时传入 label 参数,接着调用 plt.legend() 方法显示图例,例如:

python 复制代码
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]
#money
y2=[11.5,18.5,58,16.5,50.13,12,130.94]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y1,label='能量值')
plt.plot(x,y2,label='money')
plt.legend()
plt.show()

效果图:

如果想自行选择图例位置的话可以通过 plt.legend() 方法的 loc 参数实现,loc 参数共有如下 11 种方式可供选择:

python 复制代码
#靠上居中
plt.legend(loc='upper center')

绘制柱状图:

普通柱状图:

普通柱状图的画法很简单,调用 plt.bar() 方法即可。

  • 传入两个参数,第一个参数是 x 轴上刻度的标签序列(列表、元组、数组等),第二个参数则用于指定每个柱子的高度,也就是具体的数据。
  • plt.bar() 还有一些可选参数,常用的有 widthcolor,分别用于设置柱子的宽度(默认 0.8)和颜色。
python 复制代码
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]

# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#设置图表的标题
plt.title("xback的一周")
plt.bar(x,y1,label='能量值',width=0.6,color='purple')
plt.legend()
plt.show()

效果图:

堆叠柱状图:
python 复制代码
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]
#money
y2=[11.5,18.5,58,16.5,50.13,12,80]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']

plt.bar(x,y1,label='能量值',width=0.6,color='purple')
plt.bar(x,y2,label='money',width=0.6,color='red')
plt.title("xback的一周")
plt.legend()
plt.show()

效果图:

分组柱状图:
python 复制代码
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(7)
width=0.3
#时间
day=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]
#money
y2=[11.5,18.5,58,16.5,50.13,12,80]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.bar(x-width/2,y1,label='能量值',width=0.3,color='purple')
plt.bar(x+width/2,y2,label='money',width=0.3,color='red')
plt.title("xback的一周")
plt.xticks(x,day)
plt.legend()
plt.show()

效果图:

绘制饼图:

  • plt.pie() 方法每个参数的作用:第一个参数是绘图需要的数据;参数 labels 指定了数据对应的标签;参数 autopct 则给饼图自动添加百分比显示。
  • '%0.1f%%' 可以分为两部分,一部分是 %0.1f 表示保留一位小数,同理 %0.2f 表示保留两位小数。
  • 另一部分是 %%,其实它就表示输出一个 %,因为 % 还字符串格式化输出中有特殊的含义,所以想要输出 % 就得写成 %%。所以,'%0.1f%%' 的含义是保留一位小数的百分数,例如:53.3%。
python 复制代码
#时间
day=['周一','周二','周三','周四','周五','周六','周日']
#能量值
happiness=[61,72,66,79,80,88,85]
#突出显示数据
explode=(0.1,0,0,0,0,0,0)
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.pie(happiness,explode=explode,autopct='%0.1f%%')
plt.title("xback的一周")
plt.show()

效果图:

绘制子图:

  • 在 matplotlib 中,我们可以调用 plt.subplot() 方法来添加子图。 plt.subplot() 方法的前两个参数分别是子图的行数和列数,第三个参数是子图的序号(从 1 开始)
  • 使用 set_title()来为每个子图设置单独的标题。需要注意的是,如果想要给带有子图的图表设置总的标题的话,不是使用 plt.title() 方法,而是通过 plt.suptitle() 方法来设置带有子图的图表标题。
python 复制代码
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    # 用来设置字体样式以正常显示中文标签
plt.rcParams['axes.unicode_minus']=False    # 默认是使用Unicode负号,设置正常显示字符,如正常显示负号
x = np.arange(0, 2 * np.pi, 0.1)
plt.suptitle('三角函数可视化')
# 子图 1

ax1 = plt.subplot(2, 2, 1)
ax1.set_title('sin函数')
y1 = np.sin(x)
ax1.plot(x, y1)

# 子图 2

ax2 = plt.subplot(2, 2, 2)
ax2.set_title('cos函数')
y2 = np.cos(x)
ax2.plot(x, y2)

# 子图 3

ax3 = plt.subplot(2, 1, 2)
ax3.set_title('tan函数')
y3 = np.tan(x)
ax3.plot(x, y3)

plt.show()

效果图:

相关推荐
ZSYP-S14 分钟前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos17 分钟前
c++------------------函数
开发语言·c++
程序员_三木29 分钟前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
LuH112430 分钟前
【论文阅读笔记】Learning to sample
论文阅读·笔记·图形渲染·点云
是小崔啊39 分钟前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
tianmu_sama1 小时前
[Effective C++]条款38-39 复合和private继承
开发语言·c++
黄公子学安全1 小时前
Java的基础概念(一)
java·开发语言·python
liwulin05061 小时前
【JAVA】Tesseract-OCR截图屏幕指定区域识别0.4.2
java·开发语言·ocr
jackiendsc1 小时前
Java的垃圾回收机制介绍、工作原理、算法及分析调优
java·开发语言·算法
Oneforlove_twoforjob1 小时前
【Java基础面试题027】Java的StringBuilder是怎么实现的?
java·开发语言