首页 > 其他分享 >matplotlib

matplotlib

时间:2024-05-30 15:03:19浏览次数:24  
标签:plt 柱状图 matplotlib 画布 直方图 图像 数据

mat — matrix 矩阵

plot — 画图

lib — library 库

matlab 矩阵实验室

  • mat — matrix 矩阵
  • lab 实验室

一、matplotlib三层结构

1. 容器层
  • 画板层 Canvas

  • 画布层 Figure

    plt.figure()
    
  • 绘图层/坐标系 axes

    plt.subplots()
    

    axis坐标轴

    image-20240501102820249 image-20240501102954364
2. 辅助显示层

image-20240501103032957

3. 图像层

图像层指Axes内通过plot(折线图)、scatter(散点图)、bar(柱状图)、histogram(直方图)、pie(饼图)等函数根据数据绘制出的图像。

  • 总结:

  • Canvas(画板)位于最底层,用户一般接触不到

  • Figure(画布)建立在Canvas之上

  • Axes(绘图区)建立在Figure之上。一个画布可以有多个绘图区

  • 坐标轴(axis)、图例(legend)等辅助显示层以及图像层都是建立在Axes之上。

4. 常见图像种类及特点
特点图像
折线图(plot)以折线的上升或下降来表示统计数量的增减变化的统计图能够显示数据的变化趋势,反映事物的变化情况。(变化)image-20240501151244451
散点图(scatter)用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。判断变量之间是否存在数量关联趋势,展示离群点(分布规律)image-20240501151317695
柱状图(bar)排列在工作表的列或行中的数据可以绘制到柱状图中。绘制连离散的数据,能够一眼看出名个数据的大小,比较数据之间的差别(统计/对比)image-20240501151349871
直方图(histogram)由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况。绘制连续性的数据展示一组或者多组数据的分布状况(统计)image-20240501151442299
饼图(pie)用于表示不同分类的占比情况,通过弧度大小来对比各种分类。分类数据的占比情况(占比)image-20240501151452058

二、 折线图

matplotlib.pyplot包含了一系列类似于matlab的画图函数。它的函数作用于当前图形(figure)的当前坐标系(axes)

# 两者皆可
import matplotlib.pyplot as plt  
from matplotlib import pyplot as plt
# 1. 创建画布
plt.figure()

# 2. 绘制图像
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])

# 3. 显示图像
plt.show()
1. 设置画布属性与保存图片

设置画布大小与清晰度:plt.figure(figsize=(20, 8), dpi=80)

保存图像:plt.savefig(“test78.png”)

注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空片。

2. 修改x、y轴刻度
  • plt.xticks(x,**kwargs)
    • x:要显示的刻度值
  • plt.yticks(y,**kwargs)
    • y:要显示的刻度值
3. 正常显示中文和负号
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
4. 显示网格
plt.grid(linestyle='--',alpha=0.5)

linestyle:线条风格

alpha:透明度

5. 添加描述信息、标题
plt.xlabel("时间变化") # 为x轴添加信息
plt.ylabel("温度变化")
plt.title("某城市11点到12点每分钟的温度变化状况")
6. 图形风格
image-20240501135635798
7. 同一坐标系下的不同图形

使用多次plot

设置不同图例后,要使用plt.legend()将不同图例显示出来

三、直方图

  • 组数:在统计数据时,我们把数据按照不同的范围分成几个组,分成的组的个数称为组数
  • 组距:每一组两个端点的差

直方图牵涉统计学的概念,首先要对数据进行分组,然后统计每个分组内数据元的数量。在坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,称这样的统计图为频数分布直方图。

1. 直方图与柱状图的区别
  1. 直方图展示数据的分布,柱状图比较数据的大小(最根本的区别)
  2. 直方图 X 轴为定量数据,柱状图 X 轴为分类数据
  3. 直方图柱子无间隔,柱状图柱子有间隔
  4. 直方图柱子宽度可不一,柱状图柱子宽度须一致

标签:plt,柱状图,matplotlib,画布,直方图,图像,数据
From: https://blog.csdn.net/qq_45874430/article/details/139323198

相关文章

  • 让matplotlib在绘图时显示中文
     让matplotlib绘图时显示中文. 安装中文字体aptinstallfonts-wqy-microhei清除matplotlib的缓存   rm-rf~/.cache/matplotlib/*在绘图前设置字体importIPythonimportmatplotlib.pyplotasplt#如果不知道字体名,就用以下方法查看字体名#importmat......
  • matplotlib-折线图的常用操作合集
    序言:感悟:复杂的折线图,都是由基础的折线图慢慢加工绘制而成,我们通过绘制出基本折线图,然后分析需要添加的功能,慢慢润色图形即可完成复杂的图形绘制。折线图:以折线的上升或下降来表示统计数量的增减变化的统计图特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)我们以一个......
  • 中文乱码,matplotlib正确显示中文的三种方式
    如果未使用显示中文的方式,则往往会出现下图的情况:标题将会乱码显示方块那么,我们将如何将其正确显示中文呢? 下面是解决中文乱码不显示的方法:方法一:修改局部字体样式,在需要显示中文的地方增加 fontproperties 属性。importmatplotlib.pyplotasplt   #导库plt......
  • matplotlib的图形后端
    概述通常,matplotlib使用TkAgg做为后端(backend),但这要保证安装了python3-tk包。否则matplotlib就使用agg做为后端,agg只能保存图像,不能显示图像。设置TkAgg检查是否当前后端。importmatplotlibmatplotlib.get_backend()若显示'TkAgg',则表示已经安装,若'agg',则表示......
  • matplotlib 中的字体 fallback
    matplotlib的默认字体不支持中文。为了支持中文内容,我们可以选择将默认字体切换为中文字体,如宋体:importmatplotlib.pyplotaspltplt.rcParams['font.family']='SimSun'但是,宋体的英文和数字字符不太美观。很多时候我们需要中文使用宋体、英文使用TimesNewRoman字体。......
  • Python数据分析numpy、pandas、matplotlib包
    Python数据分析numpy、pandas、matplotlib一、基础1.1notebook的一些配置快捷键:ctrl+enter执行单元格程序并且不跳转到下一行esc+L可以显示行号结果是打印的而没有返回任何的值就没有out1.2列表基础知识回顾b=[1,2.3,'a','b']b#列表中的元素允许各个元素不一样......
  • matplotlib
    展示图片--imshow主要参数:image可选的image可是:(M,N)具有标量数据的图像。使用归一化和颜色映射将值映射到颜色(M,N,3):具有RGB值(0-1浮点数或0-255整数)的图像。(M,N,4):具有RGBA值(0-1浮点数或0-255整数)的图像,即包括透明度。其他参数cmap:颜色设置常用的值......
  • matplotlib中文乱码(linux中没有中文字体)
    在docker或linux中一劳永逸解决matplotlib中文显示问题安装mplfonts的安装方法是pip:$pipinstall-Umplfonts使用安装好mplfonts之后,需要有一个初始化的配置过程在终端执行$mplfontsinit即可。测试importmatplotlib.pyplotaspltfrommplfontsimportuse_font......
  • 【图像处理】使用matplotlib库显示灰度图像为自定义颜色(2)
    在下面的代码中,facies_img的值只有[0,1,2]表明图像是灰度图像。通过下面的代码可以让图像显示为彩色图像importmatplotlib.pyplotaspltimportmatplotlib.colorsasmcolorsfromPILimportImageimportosimportrandomimportnumpyasnp#路径设置data_dir='data......
  • Matplot3D for JAVA 【V5.0】发布 :一个纯JAVA开发的数学科学数据可视化组件,JAVA 三维
    ​ Matplot3DforJAVA概述 在数据科学和工程领域,数据可视化是理解和交流复杂信息的关键工具。如果您是一位Java开发者,寻找一个强大的、本地化的三维图形绘图库,那么Matplot3DforJAVA(V5.0)值得你关注。该组件旨在为Java开发者提供类似于Python中Matplotlib的三维绘图功能,让Jav......