Day073Matplotlib的使用

mac2025-09-05  73

Matplotlib的使用

Matplotlib 是一个 Python 的 2D绘图库。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。官网: matplotlib.org/

为什么学习Matplotlib

可让数据可视化,更直观的真实给用户。使数据更加客观、更具有说服力。Matplotlib是Python的库,又是开发中常用的库

Matplotlib的安装

pip install matplotlib

Matplotlib的基本使用

import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y) plt.show()

以上代码中,我们方法说明:

plt.title() 设置图表的名称 plt.xlabel() 设置x轴名称 plt.ylabel() 设置y轴名称 plt.xticks(x,ticks,rotation) 设置x轴的刻度,rotation旋转角度 plt.yticks() 设置y轴的刻度 plt.plot() 绘制线性图表 plt.show() 显示图表 plt.legend() 显示图例 plt.text(x,y,text) 显示每条数据的值 x,y值的位置 plt.figure(name,figsize=(w,h),dpi=n) 设置图片大小

图表中文显示

Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决:

首先下载字体(注意系统):fontpalace.com/font-det

方法1:引入字体文件

zhfont1 = matplotlib.font_manager.FontProperties(fname="SimHei.ttf") plt.title("图表 - 测试",fontproperties=zhfont1)

方法2:使用系统文字

# 查看系统支持的字体 a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)

在上面的代码中找到可以使用的字体,使用

plt . rcParams [ 'font.family' ] = [ 'SimHei' ]

线性图表

​ 以折线的上升或下降来表示统计数量的增减变化的统计图

​ 特点:能够显示数据的变化走势,反映事物的变化情况

plt.plot(x,y,type,label) x 显示的数据 y y轴的值 type 值显示的方式 具体值如下 label 图例名称

绘画条状图

排列在工作表的列或行中的数据可以绘制到中

特点:绘制连离散的数据,能够一眼看出各个数据的大小,可以快速统计数据之间的差别

bar(x,y,color,width) 函数来生成纵向条形图

barh(x,y,color,height) 函数来生成条形图

x 条装显示位置y 显示的值color 显示的颜色 from matplotlib import pyplot as plt x = [5,8,10] y = [12,16,6] x2 = [6,9,11] y2 = [6,15,7] plt.bar(x, y, align = 'center') plt.bar(x2, y2, color = 'g', align = 'center') plt.title('Bar graph') plt.ylabel('Y axis') plt.xlabel('X axis') plt.show()

绘画直方图

由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据范围,纵轴表示分布情况

特点:绘制连续性的数据,展示一组或多组数据的分布状况并统计

注意:拿到数据来统计,而不是直接拿统计好的数据

概念:

​ 组距:每组数据的分割区域,例如1-5一组5-10一组。我们可以称数据的组距为5

​ 组数:(最大数据-最小数据)/组距 一般会100条数据可分5-12组

hist(data,bins,normed)

data 所有的数据bins 分几组normed y轴是否显示成百分比 plt . hist ( data , bins )

绘画散点图

用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式

plt.scatter(x,info) plt.plot(x,a,'o')

特点:判断变量之间是否存在在数量关联走势,展示离群点分布规律

绘画子图

subplot() 函数允许你在同一图中绘制不同的东西

import matplotlib.pyplot as plt import numpy as np np.random.seed(19680801) data = np.random.randn(2, 100) fig, axs = plt.subplots(2, 2, figsize=(7, 7)) axs[0, 0].hist(data[0]) axs[1, 0].scatter(data[0], data[1]) axs[0, 1].plot(data[0], data[1]) axs[1, 1].hist2d(data[0], data[1]) plt.show()

最新回复(0)