首页 > 其他分享 >Matplotlib(一)

Matplotlib(一)

时间:2023-09-09 14:00:20浏览次数:27  
标签:plot plt pyplot Matplotlib matplotlib np import

Matplotlib(一)

Matplotlib库的介绍

image-20230828095837237

Matplotlib库的使用

Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式

import matplotlib.pyplot as plt

入门案例

import matplotlib.pyplot as plt
plt.plot([3, 1, 2, 4, 5])
plt.ylabel("grade")
plt.show()

注意:plt.plot()只有一个输入列表或数组时,参数被当做Y轴,X轴以索引自动生成

运行效果如下

image-20230828100334397

import matplotlib.pyplot as plt
plt.plot([3, 1, 2, 4, 5])
plt.ylabel("Grade")
plt.savefig("D:/test", dpi=600)  # PNG文件,dpi是指每一个英寸中所包含的点的数量
plt.show()

注意:plt.savefig()将输出图形存储为文件,默认为PNG格式,可以通过dpi修改输出质量

image-20230828100940800

import matplotlib.pyplot as plt
plt.plot([0, 2, 4, 6, 8], [3, 1, 4, 5, 2])  # x轴坐标[0, 2, 4, 6, 8] y轴坐标[3, 1, 4, 5, 2]
plt.ylabel("Grade")
plt.axis([-1, 10, 0, 6])  # x轴范围:[-1, 10]  y轴范围:[0, 6]
plt.show()

注意:plt.plot(x, y)当有两个以上参数时,按照x轴和y轴顺序绘制数据点

image-20230828101651860

pyplot的绘图区域

plt.subplot(nrows, ncols, plot_number)  # nrows:横纵区域的数量(行)  ncols:纵轴区域的数量(列) ploy_number:当前位于哪个区域

3行2列

image-20230828101955332

import numpy as np
import matplotlib.pyplot as plt
# f(t)是能量衰减函数
def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)
# arange(start, stop, step, dtype)
# 根据start(默认为0)与stop(不包含stop的终止值)指定的范围以及step(默认为1)步长值,生成一个ndarray数组
a = np.arange(0.0, 5.0, 0.02)
plt.subplot(211)
plt.plot(a, f(a))  # 根据数组a绘制能量衰减函数

plt.subplot(2, 1, 2)
plt.plot(a, np.cos(2*np.pi*a*2), 'r--')
plt.show()
image-20230828105813575

pyplot的plot()函数

plt.plot(x, y, format_string, **kwargs)
  • x:x轴数据,列表或数组,可选
  • y:y轴数据,列表或数组
  • format_string:控制曲线的格式字符串,可选
  • **kwargs:第二组或更多(x, y, format_string)

注意:当绘制多条曲线时,各条曲线的x不能省略

import matplotlib.pyplot as plt
import numpy as np
a = np.arange(10)
plt.plot(a, a*1.5, a, a*2.5, a, a*3.5, a, a*4.5)
plt.show()

关键参数format_string:**

format_string:控制曲线的格式字符串,可选由颜色字符、风格字符和标记字符组成

image-20230909100610535

image-20230909100623141

image-20230909100635497

颜色字符、风格字符和标记字符可以组合使用

import matplotlib.pyplot as plt
import numpy as np
a = np.arange(10)
plt.plot(a, a*1.5, 'go-', a, a*2.5, 'rx', a, a*3.5, '*', a, a*4.5, 'b-.')
image-20230909102942763

**kawrgs:第二组或更多(x, y, format_string)

color:控制颜色,color='green'

linestyle:线条风格,linestyle='dashed'

marker:标记风格,marker='o'

markerfacecolor:标记颜色,markerfacecolor='blue'

markersize:标记尺寸,markersize=20

pyplot的中文显示

pyplot的中文显示的第一种方法

pyplot并不默认支持中文显示,需要rcParams修改字体实现

import matplotlib.pyplot as plt
import numpy as np
a = np.arange(10)
plt.rcParams['font.family'] = 'SimHei'  # SimHei是黑体
plt.plot([3, 1, 4, 5, 2])
plt.ylabel("纵轴(值)")
plt.show()
image-20230909102806607

rcParams的属性

image-20230909103012639

中文字体的种类

rcParams['font.family']
image-20230909103121759

实例

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'STSong'
matplotlib.rcParams['font.size'] = 20
a = np.arange(0.0, 5.0, 0.02)
plt.xlabel('横轴:时间')
plt.ylabel('纵轴:振幅')
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()
image-20230909104135405

注意:第一种方法是全局改变字体的大小,不是很推荐使用

pyplot的中文显示的第二种方法(推荐使用)

有中文输出的地方,添加一个属性:fontproperties

import matplotlib.pyplot as plt
import numpy as np
a = np.arange(0.0, 5.0, 0.02)
plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=20)
plt.ylabel('纵轴:振幅', fontproperties='SimHei', fontsize=20)
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()
image-20230909104825934

pyplot的子绘图区域

复杂的绘图区域

image-20230909132834293

plt.subplot2gird()

plt.subplot2gird(GirdSpec, CurSpec, colspan=1, rowspan=1)

理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始

image-20230909133357450 image-20230909133512190

GirdSpec类

image-20230909134735746

单元小结

Matplotlib库入门

pyplot子库的基本使用

image-20230909134844434

pyplot图形绘制

image-20230909134936827

标签:plot,plt,pyplot,Matplotlib,matplotlib,np,import
From: https://www.cnblogs.com/codingbao/p/17689396.html

相关文章

  • 用matplotlib迭代画图,在plt.show()执行后代码暂停
    https://tieba.baidu.com/p/4778495824幸好刚刚找到答案了,对于题主来说可能是帮不上忙了,但是对于碰巧搜到这里的同萌们可能会方便很多,最简实现如下(Python3.6.2):importmatplotlib.pyplotaspltimportnumpyasnpplt.ion()#开启interactivemodex=np.linspace(0,50,1000)pl......
  • 【matplotlib基础】--刻度
    Matplotlib中刻度是用于在绘图中表示数据大小的工具。刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制。1.主次刻度默认的绘制时,坐标轴只有默认的主要刻度,如下所示:frommatplotlib.tickerimportMultipleLocatorx=......
  • 【matplotlib基础】--坐标轴
    Matplotlib的坐标轴是用于在绘图中表示数据的位置的工具。坐标轴是图像中的水平和垂直线,它们通常表示为x轴和y轴。坐标轴的作用是帮助观察者了解图像中数据的位置和大小,通常标有数字或标签,以指示特定的值在图像中的位置。1.坐标轴范围Matplotlib绘制图形时,会自动根据X,Y轴......
  • matplotlib中修改文本属性
    Text对象在matplotlib中,文字的设置(例如字体、字号、样式等)是通过Text对象来控制的。Text对象在matplotlib中表示文本实体。允许访问和修改文本属性的函数。1.title和set_title:设置图形或轴的标题。title_obj=plt.title('MainTitle')title_obj=ax.set_title('AxesTi......
  • Matplotlib Pyplot
    MatplotlibPyplotPyplot是Matplotlib的子库,提供了和MATLAB类似的绘图API。Pyplot是常用的绘图模块,能很方便让用户绘制2D图表。Pyplot包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。使用......
  • Matplotlib 轴标签和标题
    Matplotlib轴标签和标题设置轴标签和标题时,如果使用中文,可能会出现乱码情况,可以使用以下两行代码解决plt.rcParams['font.sans-serif']=[u'SimHei']#SimHei就是中文字体#因为设置了中文后,负号就乱码了,所以还要设置负号的编码plt.rcParams['axes.unicode_minus']=False#......
  • Matplotlib 网格线
    Matplotlib网格线我们可以使用pyplot中的grid()方法来设置图表中的网格线。grid()方法语法格式如下:matplotlib.pyplot.grid(b=None,which='major',axis='both',)b:可选,默认为None,可以设置布尔值,true为显示网格线,false为不显示,如果设置**kwargs参数,则值为true。which:......
  • Python matplotlib.axes对象常用属性(绘图方式、坐标轴、刻度等)
    目录一、绘图方式1.1基本绘图方式1.2跨度、频谱、填充、2D数组的绘图方式Axes类可以设置图片(或子图)中相关属性:绘图数据、坐标轴刻度/标签、标题、图例等。它是Python操作绘图的主要接口。Matplotlib定义了一个axes类(轴域类),在一个给定的画布(figure)中可以包含多个axes对象,但是同......
  • Matplotlib 绘制多图
    Matplotlib绘制多图我们可以使用pyplot中的subplot()和subplots()方法来绘制多个子图。subplot()方法在绘图时需要指定位置,subplots()方法可以一次生成多个,在调用时只需要调用生成对象的ax即可。1、subplotsubplot(nrows,ncols,index,**kwargs)subplot(pos,**kwar......
  • Matplotlib 散点图、柱形图、饼图绘制
    1、Matplotlib散点图我们可以使用pyplot中的scatter()方法来绘制散点图。scatter()方法语法格式如下:matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,*,edgecolors=None,plot......