首页 > Python资料 博客日记
【matplotlib教程】数据可视化
2024-08-23 14:04:20Python资料围观91次
这篇文章介绍了【matplotlib教程】数据可视化,分享给大家做个参考,收藏Python资料网收获更多编程知识
@TOC
显示中文和负号
- matplotlib默认使用英文字库,汉字会乱码,要指定中文字库
matplotlib.rcParams['font.family']='simHei' #黑体
matplotlib.pyplot.rcParams['axes.unicode_minus'] = False # 显示负号
1.各种绘图函数
1.1 matplotlib.pyplot.plot
def plot(*args, scalex=True, scaley=True, data=None, **kwargs):...
常用参数:
参数 | 含义 |
---|---|
args1 | 横坐标数组(list,numpy数组,pandas电子表格) |
args2 | 纵坐标数组(list,numpy数组,pandas电子表格) |
label | 图例名字,给一个字符串即可 |
color | 颜色 |
linestyle | 线型 |
marker | 附加点的样式 |
参数说明:
- 若输入两个数组作为args,那么第一个参数和第二个参数的数组长度必须相同,它们是一一对应关系
- 若只输入一个数组作为args,那么matplolib会自动根据数组长度进行横坐标的索引
- 颜色、线性、点样式会在第2节中详细介绍
1.2 matplotlib.pyplot.scatter
def scatter(
x, y, s=None, c=None, marker=None, cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None, *,
edgecolors=None, plotnonfinite=False, data=None, **kwargs):...
常用参数:
参数 | 含义 |
---|---|
x | 横坐标数组(list,numpy数组,pandas电子表格) |
y | 纵坐标数组(list,numpy数组,pandas电子表格) |
s | 点的大小 |
marker | 点的样式 |
label | 图例名字,给一个字符串即可 |
color | 颜色 |
参数说明:
- x参数和y参数的数组长度必须相同,一一对应
- s表示点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小
- 颜色、线性、点样式会在第2节中详细介绍
1.3 matplotlib.pyplot.bar
def bar(
x, height, width=0.8, bottom=None, *, align='center',
data=None, **kwargs):...
常用参数:
参数 | 含义 |
---|---|
x | 数组,柱形图的 x 轴数据 |
height | 数组,柱形图的 y 轴数据 |
width | 柱形图的宽度 |
bottom | height 坐标的偏移量,默认 0 |
align | 柱形图与 x 坐标的对齐方式 |
color | 颜色 |
label | 图例名字,给一个字符串即可 |
tick_label | 用来替代 x 轴数据的字符串或字符串数组 |
参数说明:
- x参数和height参数的数组长度必须相同,一一对应
- width 表示柱的宽度,也可以是个数组,对应每条柱的横向宽度
- bottom表示height坐标的偏移量,也可以是个数组,对应每条柱的y偏移量
- align可选参数:中心对齐"center",左对齐"edge"
- tick_label可以替代x轴的数字,也可以是个数组,对应每条柱的x轴位置
- 颜色会在第2节中详细介绍
下面是一个在一张图上画出两幅柱状图的例子:
import numpy as np
import matplotlib.pyplot as plt
# 数据
x = np.arange(4)
Bj = [52, 55, 63, 53]
Sh = [44, 66, 55, 41]
bar_width = 0.3
# 绘图 x 表示 从那里开始
plt.bar(x, Bj, bar_width)
plt.bar(x+bar_width, Sh, bar_width, align="center")
# 展示图片
plt.show()
1.4 matplotlib.pyplot.pie
def pie(
x, explode=None, labels=None, colors=None, autopct=None,
pctdistance=0.6, shadow=False, labeldistance=1.1,
startangle=0, radius=1, counterclock=True, wedgeprops=None,
textprops=None, center=(0, 0), frame=False,
rotatelabels=False, *, normalize=True, hatch=None, data=None):
常用参数:
参数 | 含义 |
---|---|
x | 数组,用于绘制饼图的数据,表示每个扇形的面积 |
explode | 数组,表示各个扇形之间的间隔 |
labels | 列表,各个扇形的标签 |
colors | 数组,表示各个扇形的颜色 |
autopct | 字符串,设置饼图内各个扇形百分比显示格式 |
radius | 设置饼图的半径 |
参数说明:
- x参数,labels参数,colors参数的数组长度必须相同,一一对应
- explode决定图形显示的方式
- autopct举例:%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比
1.5 matplotlib.pyplot.hist
def hist(
x, bins=None, range=None, density=False, weights=None,
cumulative=False, bottom=None, histtype='bar', align='mid',
orientation='vertical', rwidth=None, log=False, color=None,
label=None, stacked=False, *, data=None, **kwargs):...
常用参数:
参数 | 含义 |
---|---|
x | 数组,表示要绘制直方图的数据 |
bins | 直方图的箱数 |
colors | 颜色 |
label | 图例 |
参数说明:
- bins举例说明:如果 bins 参数为 30,这意味着将数据范围分成 30 个等宽的区间,然后统计每个区间内数据的频数。
- 图例、颜色等,会在第2节中详细介绍
2.绘图样式
2.1 轴标签和标题
轴标签(matplotlib.pyplot.xlabel与matplotlib.pyplot.ylabel)
def xlabel(xlabel, fontdict=None, labelpad=None, *, loc=None, **kwargs):...
def ylabel(ylabel, fontdict=None, labelpad=None, *, loc=None, **kwargs):...
- loc参数只有
"left"
,"center"
,"right "
可选
标题
def title(label, fontdict=None, loc=None, pad=None, *, y=None, **kwargs):
- loc参数只有
"left"
,"center"
,"right "
可选
2.2 图例位置(matplotlib.pyplot.legend)
- 在绘图时指定好label图例后,如果不使用matplotlib.pyplot.legend函数指定图例位置,图例是不会显示的
def legend(*args, **kwargs):...
- loc参数如下:
可选参数 |
---|
'upper right' |
'upper left' |
'lower left' |
'lower right' |
'right' |
'center left' |
'center right' |
'lower center' |
'upper center' |
'center' |
2.3 可选颜色(color)
常用颜色如下:
颜色标记 | 描述 |
---|---|
'r' |
红色 |
'g' |
绿色 |
'b' |
蓝色 |
'c' |
青色 |
'm' |
品红 |
'y' |
黄色 |
'k' |
黑色 |
'w' |
白色 |
2.4 线型(linestyle)
常用线型如下:
线型标记 | 描述 |
---|---|
'-' |
实线 |
':' |
点虚线 |
'--' |
破折线 |
'-.' |
点划线 |
2.5 点的样式(marker)
常用样式如下:
常用颜色如下:
可选markder | 样式 | 描述 |
---|---|---|
"." |
点 | |
"," |
像素点 | |
"o" |
实心圆 | |
"v" |
下三角 | |
"^" |
上三角 | |
"<" |
左三角 | |
">" |
右三角 | |
"1" |
下三叉 | |
"2" |
上三叉 | |
"3" |
左三叉 | |
"4" |
右三叉 | |
"8" |
八角形 | |
"s" |
正方形 | |
"p" |
五边形 | |
"P" |
填充的加号 | |
"*" |
星号 | |
"h" |
六边形1 | |
"H" |
六边形2 | |
"+" |
加号 | |
"x" |
乘号 | |
"X" |
填充的乘号 | |
"D" |
菱形 | |
"d" |
瘦菱形 | |
"|" |
竖线 | |
"_" |
横线 | |
4 |
左箭头 | |
5 |
右箭头 | |
6 |
上箭头 | |
7 |
下箭头 |
3.画布管理与多图
3.1 subplots
创建一张画布上的多图
def subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True,
width_ratios=None, height_ratios=None,
subplot_kw=None, gridspec_kw=None, **fig_kw):...
参数说明:
- nrows表示子图的行数,ncols表示子图的列数
返回值说明:
- 返回一个有2个元素的元组,分别为fig和ax。
- fig为这张画布
- ax为子图列表,想在第一张图上画折线图:调用ax[0].plot
3.2 subplot
创建一张画布上的多图
def subplot(*args, **kwargs):
使用说明
- 输入
plt.subplot(2,2,1)
后,表明此时选定2行2列的一共4张子图中的第1张子图 - 此时调用
plt.plt
,就可以在第1张子图上绘图 - 切换子图时,输入
plt.subplot(2,2,2)
后,表明切换到第2张子图
3.3 清理
- 清理一张图上所有内容:
plt.cla()
- 清理一张画布上的所有图:
plt.clf()
3.4 画布尺寸设置
fig = plt.figure(figsize=(16, 6),dpi=100)
以上设置了一张宽度16英寸,高度6英寸的画布,且每英寸的像素个数为100,也就是说此图片的宽高是1600x600。大家可以自行修改想要的数值。
fig.tight_layout()
以上这行指令用于在所有子图都绘制完毕后自动调整子图之间的位置,防止子图的轴标签被遮挡。
动态图
- 先开启交互模式,然后提前展示画布
plt.ion()
plt.show()
- 在每轮绘制前先进行清理,然后停留
plt.cla()
plt.plot(...)
plt.pause(0.001)
本文由博客一文多发平台 OpenWrite 发布!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj