matplotlib入门教程

合集下载

Python数据可视化库Matplotlib的使用

Python数据可视化库Matplotlib的使用

Python数据可视化库Matplotlib的使用随着数据的不断增加和呈现方式的多样化,数据可视化变得越来越重要。

当我们处理大量数据时,可视化图表是一个非常好的选择,它们可以帮助我们更好地理解和分析数据。

Matplotlib是一个广泛使用的Python数据可视化库,它可以用来创建各种图表,比如线图、散点图、柱状图等。

本文将介绍Matplotlib的基本知识,包括安装、常用函数和创建不同类型的图表等。

一、Matplotlib的安装Matplotlib需要安装在Python环境中才能使用。

安装Matplotlib的方法有很多,最简单的方法是使用pip命令。

在命令行中输入以下命令:pip install matplotlib当然,Matplotlib也可以通过Anaconda等Python发行版来安装。

二、Matplotlib的基本知识Matplotlib提供了丰富的接口来创建图表,支持各种类型的图表。

在使用Matplotlib之前,我们需要了解Matplotlib的核心对象:Figure、Axes和Axis。

Figure是最上层的容器,代表整个图形窗口。

在Matplotlib中,我们可以在Figure上添加一个或多个Axes来绘制图表。

Axes是绘图区域,它是Figure的一个子类。

在Axes内可以添加坐标轴(Axis)、文字(Text)、网格(Grid)和数据(Data)等。

Axis是数据的基本轴。

在Matplotlib中,我们可以创建一个或多个Axis对象,以及为每个Axis对象设置其属性和样式。

三、Matplotlib的基本用法1.绘制曲线图在Matplotlib中,我们可以使用plot()函数来绘制曲线图。

plot()函数的参数包括x轴和y轴的数据,以及设置曲线的样式和颜色等。

例如,我们可以使用以下代码来绘制一个简单的曲线图:import matplotlib.pyplot as pltx = np.linspace(-np.pi, np.pi, 256, endpoint=True)y = np.sin(x)plt.plot(x, y)plt.show()在这个例子中,我们使用numpy库中的linspace()函数生成一个区间内的等差数列,并使用numpy库中的sin()函数生成对应的sin曲线。

matplotlib从入门到精通教程

matplotlib从入门到精通教程

1.导入matplotlib库简写为pltimport matplotlib.pyplot as plt二、基本图表2.用plot方法画出x=(0,10)间sin的图像x = np.linspace(0, 10, 30)plt.plot(x, np.sin(x));3.用点加线的方式画出x=(0,10)间sin的图像plt.plot(x, np.sin(x), '-o');4.用scatter方法画出x=(0,10)间sin的点图像plt.scatter(x, np.sin(x));5.用饼图的面积及颜色展示一组4维数据rng = np.random.RandomState(0)x = rng.randn(100)y = rng.randn(100)colors = rng.rand(100)sizes = 1000 * rng.rand(100)plt.scatter(x, y, c=colors, s=sizes, alpha=0.3,cmap='viridis')plt.colorbar(); # 展示色阶6.绘制一组误差为±0.8的数据的误差条图x = np.linspace(0, 10, 50)dy = 0.8y = np.sin(x) + dy * np.random.randn(50)plt.errorbar(x, y, yerr=dy, fmt='.k')7.绘制一个柱状图x = [1,2,3,4,5,6,7,8]y = [3,1,4,5,8,9,7,2]label=['A','B','C','D','E','F','G','H']plt.bar(x,y,tick_label = label);8.绘制一个水平方向柱状图plt.barh(x,y,tick_label = label);9.绘制1000个随机值的直方图data = np.random.randn(1000)plt.hist(data);10.设置直方图分30个bins,并设置为频率分布plt.hist(data, bins=30,histtype='stepfilled', density=True)plt.show();11.在一张图中绘制3组不同的直方图,并设置透明度x1 = np.random.normal(0, 0.8, 1000)x2 = np.random.normal(-2, 1, 1000)x3 = np.random.normal(3, 2, 1000)kwargs = dict(alpha=0.3, bins=40, density = True)plt.hist(x1, **kwargs);plt.hist(x2, **kwargs);plt.hist(x3, **kwargs);12.绘制一张二维直方图mean = [0, 0]cov = [[1, 1], [1, 2]]x, y = np.random.multivariate_normal(mean, cov, 10000).T plt.hist2d(x, y, bins=30);13.绘制一张设置网格大小为30的六角形直方图plt.hexbin(x, y, gridsize=30);三、自定义图表元素14.绘制x=(0,10)间sin的图像,设置线性为虚线x = np.linspace(0,10,100)plt.plot(x,np.sin(x),'--');15设置y轴显示范围为(-1.5,1.5)x = np.linspace(0,10,100)plt.plot(x, np.sin(x))plt.ylim(-1.5, 1.5);16.设置x,y轴标签variable x,value yx = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y, label='sin(x)')plt.xlabel('variable x');plt.ylabel('value y');17.设置图表标题“三角函数”x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y, label='sin(x)')plt.title('三角函数');18.显示网格x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.grid()19.绘制平行于x轴y=0.8的水平参考线x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.axhline(y=0.8, ls='--', c='r')20.绘制垂直于x轴x<4 and x>6的参考区域,以及y轴y<0.2 and y>-0.2的参考区域x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.axvspan(xmin=4, xmax=6, facecolor='r', alpha=0.3) # 垂直x轴plt.axhspan(ymin=-0.2, ymax=0.2, facecolor='y', alpha=0.3); # 垂直y轴21.添加注释文字sin(x)x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.text(3.2, 0, 'sin(x)', weight='bold', color='r');22.用箭头标出第一个峰值x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.annotate('maximum',xy=(np.pi/2, 1),xytext=(np.pi/2+1, 1),weight='bold',color='r',arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='r'));四、自定义图例23.在一张图里绘制sin,cos的图形,并展示图例x = np.linspace(0, 10, 1000)fig, ax = plt.subplots()ax.plot(x, np.sin(x), label='sin')ax.plot(x, np.cos(x), '--', label='cos')ax.legend();24.调整图例在左上角展示,且不显示边框ax.legend(loc='upper left', frameon=False);fig25.调整图例在画面下方居中展示,且分成2列ax.legend(frameon=False, loc='lower center', ncol=2)fig26.绘制的图像,并只显示前2者的图例y = np.sin(x[:, np.newaxis] + np.pi * np.arange(0, 2, 0.5))lines = plt.plot(x, y)# lines 是plt.Line2D 类型的实例的列表plt.legend(lines[:2], ['first', 'second']);# 第二个方法#plt.plot(x, y[:, 0], label='first')#plt.plot(x, y[:, 1], label='second')#plt.plot(x, y[:, 2:])#plt.legend(framealpha=1, frameon=True);27.将图例分不同的区域展示fig, ax = plt.subplots()lines = []styles = ['-', '--', '-.', ':']x = np.linspace(0, 10, 1000)for i in range(4):lines += ax.plot(x, np.sin(x - i * np.pi / 2),styles[i], color='black') ax.axis('equal')# 设置第一组标签ax.legend(lines[:2], ['line A', 'line B'],loc='upper right', frameon=False)# 创建第二组标签from matplotlib.legend import Legendleg = Legend(ax, lines[2:], ['line C', 'line D'],loc='lower right', frameon=False)ax.add_artist(leg);五、自定义色阶28.展示色阶x = np.linspace(0, 10, 1000)I = np.sin(x) * np.cos(x[:, np.newaxis])plt.imshow(I)plt.colorbar();29.改变配色为'gray'plt.imshow(I, cmap='gray');30.将色阶分成6个离散值显示plt.imshow(I, cmap=plt.cm.get_cmap('Blues', 6))plt.colorbar()plt.clim(-1, 1);六、多子图31.在一个1010的画布中,(0.65,0.65)的位置创建一个0.20.2的子图ax1 = plt.axes()ax2 = plt.axes([0.65, 0.65, 0.2, 0.2])32.在2个子图中,显示sin(x)和cos(x)的图像fig = plt.figure()ax1 = fig.add_axes([0.1, 0.5, 0.8, 0.4], ylim=(-1.2, 1.2))ax2 = fig.add_axes([0.1, 0.1, 0.8, 0.4], ylim=(-1.2, 1.2))x = np.linspace(0, 10)ax1.plot(np.sin(x));ax2.plot(np.cos(x));33.用for创建6个子图,并且在图中标识出对应的子图坐标for i in range(1, 7):plt.subplot(2, 3, i)plt.text(0.5, 0.5, str((2, 3, i)),fontsize=18, ha='center')# 方法二# fig = plt.figure()# fig.subplots_adjust(hspace=0.4, wspace=0.4)# for i in range(1, 7):# ax = fig.add_subplot(2, 3, i)# ax.text(0.5, 0.5, str((2, 3, i)),fontsize=18, ha='center')34.设置相同行和列共享x,y轴fig, ax = plt.subplots(2, 3, sharex='col', sharey='row')35.用[]的方式取出每个子图,并添加子图座标文字for i in range(2):for j in range(3):ax[i, j].text(0.5, 0.5, str((i, j)),fontsize=18, ha='center')fig36.组合绘制大小不同的子图,样式如下Image Namegrid = plt.GridSpec(2, 3, wspace=0.4, hspace=0.3)plt.subplot(grid[0, 0])plt.subplot(grid[0, 1:])plt.subplot(grid[1, :2])plt.subplot(grid[1, 2]);37.显示一组二维数据的频度分布,并分别在x,y轴上,显示该维度的数据的频度分布mean = [0, 0]cov = [[1, 1], [1, 2]]x, y = np.random.multivariate_normal(mean, cov, 3000).T# Set up the axes with gridspecfig = plt.figure(figsize=(6, 6))grid = plt.GridSpec(4, 4, hspace=0.2, wspace=0.2)main_ax = fig.add_subplot(grid[:-1, 1:])y_hist = fig.add_subplot(grid[:-1, 0], xticklabels=[], sharey=main_ax)x_hist = fig.add_subplot(grid[-1, 1:], yticklabels=[], sharex=main_ax)# scatter points on the main axesmain_ax.scatter(x, y,s=3,alpha=0.2)# histogram on the attached axesx_hist.hist(x, 40, histtype='stepfilled',orientation='vertical')x_hist.invert_yaxis()y_hist.hist(y, 40, histtype='stepfilled',orientation='horizontal')y_hist.invert_xaxis()七、三维图像38.创建一个三维画布from mpl_toolkits import mplot3dfig = plt.figure()ax = plt.axes(projection='3d')39.绘制一个三维螺旋线ax = plt.axes(projection='3d')# Data for a three-dimensional linezline = np.linspace(0, 15, 1000)xline = np.sin(zline)yline = np.cos(zline)ax.plot3D(xline, yline, zline);40.绘制一组三维点ax = plt.axes(projection='3d')zdata = 15 * np.random.random(100)xdata = np.sin(zdata) + 0.1 * np.random.randn(100)ydata = np.cos(zdata) + 0.1 * np.random.randn(100)ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens');八、宝可梦数据集可视化41.展示前5个宝可梦的Defense,Attack,HP的堆积条形图pokemon = df['Name'][:5]hp = df['HP'][:5]attack = df['Attack'][:5]defense = df['Defense'][:5]ind = [x for x, _ in enumerate(pokemon)]plt.figure(figsize=(10,10))plt.bar(ind, defense, width=0.8, label='Defense', color='blue', bottom=attack+hp) plt.bar(ind, attack, width=0.8, label='Attack', color='gold', bottom=hp)plt.bar(ind, hp, width=0.8, label='Hp', color='red')plt.xticks(ind, pokemon)plt.ylabel("Value")plt.xlabel("Pokemon")plt.legend(loc="upper right")plt.title("5 Pokemon Defense & Attack & Hp")plt.show()42.展示前5个宝可梦的Attack,HP的簇状条形图N = 5pokemon_hp = df['HP'][:5]pokemon_attack = df['Attack'][:5]ind = np.arange(N)width = 0.35plt.bar(ind, pokemon_hp, width, label='HP')plt.bar(ind + width, pokemon_attack, width,label='Attack')plt.ylabel('Values')plt.title('Pokemon Hp & Attack')plt.xticks(ind + width / 2, (df['Name'][:5]),rotation=45)plt.legend(loc='best')plt.show()43.展示前5个宝可梦的Defense,Attack,HP的堆积图x = df['Name'][:4]y1 = df['HP'][:4]y2 = df['Attack'][:4]y3 = df['Defense'][:4]labels = ["HP ", "Attack", "Defense"]fig, ax = plt.subplots()ax.stackplot(x, y1, y2, y3)ax.legend(loc='upper left', labels=labels)plt.xticks(rotation=90)plt.show()44.公用x轴,展示前5个宝可梦的Defense,Attack,HP的折线图x = df['Name'][:5]y1 = df['HP'][:5]y2 = df['Attack'][:5]y3 = df['Defense'][:5]# Create two subplots sharing y axisfig, (ax1, ax2,ax3) = plt.subplots(3, sharey=True)ax1.plot(x, y1, 'ko-')ax1.set(title='3 subplots', ylabel='HP')ax2.plot(x, y2, 'r.-')ax2.set(xlabel='Pokemon', ylabel='Attack')ax3.plot(x, y3, ':')ax3.set(xlabel='Pokemon', ylabel='Defense')plt.show()45.展示前15个宝可梦的Attack,HP的折线图plt.plot(df['HP'][:15], '-r',label='HP')plt.plot(df['Attack'][:15], ':g',label='Attack')plt.legend();46.用scatter的x,y,c属性,展示所有宝可梦的Defense,Attack,HP数据x = df['Attack']y = df['Defense']colors = df['HP']plt.scatter(x, y, c=colors, alpha=0.5)plt.title('Scatter plot')plt.xlabel('HP')plt.ylabel('Attack')plt.colorbar();47.展示所有宝可梦的攻击力的分布直方图,bins=10x = df['Attack']num_bins = 10n, bins, patches = plt.hist(x, num_bins, facecolor='blue', alpha=0.5)plt.title('Histogram')plt.xlabel('Attack')plt.ylabel('Value')plt.show()48.展示所有宝可梦Type 1的饼图plt.figure(1, figsize=(8,8))df['Type 1'].value_counts().plot.pie(autopct="%1.1f%%")plt.legend()49.展示所有宝可梦Type 1的柱状图ax = df['Type 1'].value_counts().plot.bar(figsize = (12,6),fontsize = 14) ax.set_title("Pokemon Type 1 Count", fontsize = 20)ax.set_xlabel("Pokemon Type 1", fontsize = 20)ax.set_ylabel("Value", fontsize = 20)plt.show()50.展示综合评分最高的10只宝可梦的系数间的相关系数矩阵import seaborn as snstop_10_pokemon=df.sort_values(by='Total',ascending=False).head(10) corr=top_10_pokemon.corr()fig, ax=plt.subplots(figsize=(10, 6))sns.heatmap(corr,annot=True)ax.set_ylim(9, 0)plt.show()。

【转载】matplotlib.pyplot的使用总结大全(入门加进阶)

【转载】matplotlib.pyplot的使用总结大全(入门加进阶)

【转载】matplotlib.pyplot 的使⽤总结⼤全(⼊门加进阶)前⾔其实⼀年前就有想法好好学学python ⾥的画图库matplotlib 库,主要是因为每次可视化⼀些结果的时候,都是搜⼀些别⼈写好的代码,看的时候感觉乱乱的,不是说别⼈写的乱,⽽是每个⼈在某些点上实现的⽅式不太⼀样,还有就是觉得,总⽤别⼈的,就觉得不是⾃⼰创造的,没有成就感。

这段时间做了个⽐赛,可视化分析的时候,⼜在搜代码,想⾃⼰加点东西,感觉很费劲,⼜不知道该怎么加,所以决定好好学⼀下,并做好总结。

借⽤⼀张图,说明画图流程准备⼯作我们需要先安装matplotlib 库,然后导⼊库,这些很简单,我就不讲了,哦,把numpy 也导⼊进来。

1. 正式开始1.1 和 我们经常会在画图的代码⾥看到,有⽤plt.的,有⽤ax.的,两者到底有什么区别呢,画的图有什么不⼀样吗,我们先来⽤两种经常看到的⽅式实现⼀下。

plt.ax.上⾯两种代码⽅式最终的结果都如上图所⽰,画图⽅式可视化结果并⽆不同,那区别在哪呢?其实呢,第⼀种⽅式呢,是先⽣成了⼀个画布,然后在这个画布上隐式的⽣成⼀个画图区域来进⾏画图,第⼆种⽅式,先⽣成⼀个画布,然后,我们在此画布上,选定⼀个⼦区域画了⼀个⼦图,上⼀张官⽅的图,看看你能不能更好的理解。

官⽅图除了ax 之外,我们也可以直接⽤plt 添加⼦图,⽅式如下你看,这样添加⼦图,也是⼀样的,fig ,⽣成⼀个画布,plt.subplot(111),将画布分为1x1的分布,并选中第⼀个⼦图进⾏操作。

虽然这样看着⼀样呢,但是后⾯修饰图⽚的时候,ax 这个⽅式⽐plt 的⽅式更加⽅便。

因此,本⽂我们⽤ax ⽅式来学习画图,也希望⼤家都提前选定⼀种⾃⼰喜欢的⽅式来画图,添加⼦图,等⼀些列操作。

1.2 ⼦图的创建在上⼀节的介绍中,讲到了⼦图,可能刚接触画图的同学,会有点疑惑,这节,我们来详细讲讲⼦图。

我们可以这样来考虑问题,我们画图的时候,找到⼀张纸(画布),然后打算把这张纸分成⼏个区域(⼦图)来画⼏幅不同的画。

matplotlib基本用法

matplotlib基本用法

一、matplotlib的简介matplotlib是一个Python绘图库,它能够生成2D图形,包括线图、散点图、柱状图、饼图等,并且能够以高质量输出文件的形式保存这些图形。

matplotlib可以与NumPy一起使用,能够方便地对数据进行可视化。

二、matplotlib的安装要使用matplotlib,首先需要安装它。

可以通过pip命令来进行安装:```pip install matplotlib```安装完成后,在Python脚本中引入matplotlib库:```import matplotlib.pyplot as plt```三、matplotlib的基本用法1. 创建图形与坐标系要在matplotlib中绘制图形,首先需要创建一个图形对象和坐标系对象。

图形对象可以通过`plt.figure()`来创建,坐标系对象可以通过`plt.subplot()`来创建。

```pythonfig = plt.figure()ax = fig.add_subplot(111)```2. 绘制直线图要绘制直线图,可以使用`plt.plot()`方法。

这个方法可以传入x轴和y 轴上的数据点,并且可以指定线条的颜色、形状、宽度等参数。

```pythonx = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]plt.plot(x, y, color='r', linestyle='--', linewidth=2)```3. 绘制散点图要绘制散点图,可以使用`plt.scatter()`方法。

这个方法也可以传入x 轴和y轴上的数据点,并且可以指定点的大小、颜色等参数。

```pythonx = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]plt.scatter(x, y, s=50, c='b', marker='o')```4. 绘制柱状图要绘制柱状图,可以使用`plt.bar()`方法。

matplotlib ax 函数 详解

matplotlib ax 函数 详解

一、matplotlib简介1.1 matplotlib概述1.2 matplotlib的作用1.3 matplotlib的安装与导入二、matplotlib中的ax函数2.1 ax函数概述2.2 ax函数的基本用法2.3 ax函数的参数详解三、ax函数的实例演示3.1 设置坐标轴范围3.2 添加图例3.3 设置坐标轴标签3.4 绘制子图3.5 添加注释四、ax函数常见问题解答4.1 如何设置坐标轴刻度4.2 如何设置坐标轴名称4.3 如何设置图例4.4 如何设置坐标轴标题4.5 如何添加注释五、总结与展望---一、matplotlib简介1.1 matplotlib概述matplotlib是一个Python绘图库,可以用来创建各种类型的图表、图形和可视化。

它的设计理念是使用简单的代码来生成高质量的图形,同时还支持多种不同的操作系统和图形输出格式。

1.2 matplotlib的作用matplotlib主要用于数据可视化,包括线图、散点图、柱状图、饼图、直方图等。

它可以帮助用户快速了解数据的分布和规律,使得数据分析更加直观和易于理解。

1.3 matplotlib的安装与导入matplotlib的安装非常简单,只需要在命令行中使用pip命令即可,如下所示:```pythonpip install matplotlib```安装完成后,就可以在Python脚本中使用import语句来导入matplotlib库了:```pythonimport matplotlib.pyplot as plt```---二、matplotlib中的ax函数2.1 ax函数概述在matplotlib中,ax函数是一个非常重要的函数,它用来创建一个新的图形对象,并且所有的绘图操作都是在这个对象上进行的。

使用ax函数可以实现对图形的精细化控制,包括设置坐标轴范围、添加图例、设置坐标轴标签、绘制子图等等。

2.2 ax函数的基本用法使用ax函数的基本步骤如下:```pythonfig, ax = plt.subplots()```这样就创建了一个新的图形对象,并返回了一个包含图形和坐标轴的对象。

大数据-Matplotlib基础绘图

大数据-Matplotlib基础绘图

大数据挖掘专家
19
动态rc参数
3. 字体常用的rc参数
➢ 除字体与符号编码参数外,更多的字体常用rc参数名称、接收、取值如下表所示。
rc参数名称 font.family
font.style font.variant
解释
字体族,每一个族 对应多种字体 字体风格,正常或 罗马体及斜体
字体变化
font.weight 字体重量
plt.plot(x, np.sin(x))
plt.show()
大数据挖掘专家
17
动态rc参数
2. 坐标轴常用的rc参数
➢ 更多的坐标轴常用的rc参数名称、解释、取值如下表所示。
rc参数名称 axes.facecolor axes.edgecolor axes.linewidth axes.grid
‘None’
意义 圆圈 菱形 六边形1 六边形2 水平线 八边形 五边形 像素 加号 无
marker取值 ‘.’ ‘s’ ‘*’ ‘d’ ‘v’ ‘<’ ‘>’ ‘^’ ‘\’ ‘x’
意义 点 正方形 星号 小菱形 一角朝下的三角形 一角朝左的三角形 一角朝右的三角形 一角朝上的三角形 竖线
X
大数据挖掘专家
大数据挖掘专家
7
编号风格
1. 基础流程
➢ 通常情况下,在使用不同的数据重复的绘制同样 的图形时,选择自编函数来进行绘图。有时候也 会需要在图上添加文本标注。pyplot模块中,使 用matplotlib.pyplot.text()函数能够在任意位置添 加文本,其使用基本语法如下。
matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, **kwargs)

matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

matplotlib常见函数之plt.rcParams、matshow的使⽤(坐标轴设置)1、plt.rcParamsplt(matplotlib.pyplot)使⽤rc配置⽂件来⾃定义图形的各种默认属性,称之为“rc配置”或“rc参数”。

通过rc参数可以修改默认的属性,包括窗体⼤⼩、每英⼨的点数、线条宽度、颜⾊、样式、坐标轴、坐标和⽹络属性、⽂本、字体等。

rc参数存储在字典变量中,通过字典的⽅式进⾏访问。

代码:import numpy as npimport matplotlib.pyplot as plt###%matplotlib inline #jupyter可以⽤,这样就不⽤plt.show()#⽣成数据x = np.linspace(0, 4*np.pi)y = np.sin(x)#设置rc参数显⽰中⽂标题#设置字体为SimHei显⽰中⽂plt.rcParams['font.sans-serif'] = 'SimHei'#设置正常显⽰字符plt.rcParams['axes.unicode_minus'] = Falseplt.title('sin曲线')#设置线条样式plt.rcParams['lines.linestyle'] = '-.'#设置线条宽度plt.rcParams['lines.linewidth'] = 3#绘制sin曲线plt.plot(x, y, label='$sin(x)$')plt.savefig('sin.png')plt.show()参数:plt.rcParams['savefig.dpi'] = 300 #图⽚像素plt.rcParams['figure.dpi'] = 300 #分辨率plt.savefig(‘plot123_2.png', dpi=200)#指定分辨率# 默认的像素:[6.0,4.0],分辨率为100,图⽚尺⼨为 600&400# 指定dpi=200,图⽚尺⼨为 1200*800# 指定dpi=300,图⽚尺⼨为 1800*1200plt.rcParams['figure.figsize'] = (8.0, 4.0) # 图像显⽰⼤⼩plt.rcParams['image.interpolation'] = 'nearest' # 最近邻差值: 像素为正⽅形#Interpolation/resampling即插值,是⼀种图像处理⽅法,它可以为数码图像增加或减少象素的数⽬。

matplotlib函数手册

matplotlib函数手册

matplotlib函数手册1. 引言Matplotlib是一个功能强大的数据可视化库,广泛应用于Python科学计算领域。

本文将详细介绍Matplotlib库中常用的函数,帮助读者更好地理解和使用Matplotlib绘图工具。

2. 基础绘图函数Matplotlib提供了丰富的基础绘图函数,可以用于绘制各种类型的图表。

以下是其中一些常用的函数:2.1 plot()plot()函数用于绘制折线图,在二维坐标系上连接各个数据点,形成一条折线。

使用该函数时,需要提供x轴和y轴的数据。

例如:import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]plt.plot(x, y)plt.show()这段代码将绘制一条连接5个数据点的折线。

2.2 scatter()scatter()函数用于绘制散点图,将数据点在二维坐标系上显示出来。

使用该函数时,需要提供x轴和y轴的数据。

例如:import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]plt.scatter(x, y)plt.show()这段代码将绘制5个散点。

2.3 bar()bar()函数用于绘制柱状图,显示不同类别或组之间的比较。

使用该函数时,需要提供每个柱子的高度和宽度。

例如:import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]plt.bar(x, y)plt.show()这段代码将绘制5个柱子,每个柱子的高度分别为2、4、6、8、10。

2.4 pie()pie()函数用于绘制饼图,显示不同类别占总体的比例。

使用该函数时,需要提供每个类别的占比。

例如:import matplotlib.pyplot as pltlabels = ['A', 'B', 'C', 'D']sizes = [30, 40, 10, 20]plt.pie(sizes, labels=labels)plt.show()这段代码将绘制一个饼图,其中4个类别A、B、C、D分别占总体的30%、40%、10%、20%。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

>>> x
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ,
Hale Waihona Puke 1.1, 1.2, 1.3, 1.4, 1.5])
如果要精确的浮点计算请参见 numpy 文档。
基本函数(三角,对数,平方,立方,等)的使用就是在函数前加上 np.这样就能实现数组
2.44897959, 2.65306122, 2.85714286, 3.06122449,
3.26530612, 3.46938776, 3.67346939, 3.87755102,
4.08163265, 4.28571429, 4.48979592, 4.69387755,
4.89795918, 5.10204082, 5.30612245, 5.51020408,
>>> np.arange(0,5.6)
array([ 0., 1., 2., 3., 4., 5.])
>>> np.arange(0.3,4.2)
array([ 0.3, 1.3, 2.3, 3.3])
2:linspace函数通过指定开始值、终值和元素个数来创建一维数组,可以通过endpoint关
3.1 函数处理部分(numpy 的使用)
具体的使用可以参见 numpy 的文档
我们使用matplotlib将数据可视化时基本上我们只用到两种方法
1:arange函数类似于python的range函数,通过指定开始值、终值和步长来创建一维数组,
注意数组不包括终值:
>>> import numpy as np
File "<pyshell#18>", line 1, in <module>
y=sin(x)
NameError: name 'sin' is not defined
>>> y=np.sin(x)
>>> y
array([ 0.
, 0.09983342, 0.19866933, 0.29552021, 0.38941834,
其使用中要先安装 numpy 库(一个 python 下数组处理的三方库,可以很方便的处理矩 阵,数组),对于做数据图,其原理很简单,就是把函数变成关于 X,Y,Z 的坐标点的数组,如 函数 Y=X2 ,我们画图是也是先找一组特征点(x,y),然后连接成线,matplotlib 出图的过程和我 们画图过程差不多,先生成 X 的一个取值数组,如要画区间[0,1]的图像,则先取[0,1]之内的一 组数组(如:x=arange(0,1,0.01)表示 x 以 0.01 为步长取 100 个点),然后去对应 x 的对应 y 的 值的一组数据,这样以坐标(x,y)画出的图就是一条曲线了。
如在阅读本书中遇到任何问题请联系master sell <yishenggudou@> 本文在线网址为:/book/matplotlib.html pdf在线网址为: /book/matplotlib.pdf 作者个人博客网址为: /
一、 前言..............................................................................................1 二、 matplotlib 简介................................................................................ 2 三、 Matplotlib 使用入门........................................................................... 2
0.47942554, 0.56464247, 0.64421769, 0.71735609, 0.78332691,
0.84147098, 0.89120736, 0.93203909, 0.96355819, 0.98544973,
0.99749499])
数组的最后一项不是 1 是因为数组的数据不是标准的浮点型的数据
----------------------------------------------------------------------master sell ------------------------------------------------------------------------2010.2.14
一、前言
接触python有近半年的时间了,和大多数接触过python的朋友一样,我被它的简单的 表述和清晰的描写思路深深吸引,python的三方模块很是丰富,在不断的学习中,渐渐里 就接触到了matplotlib,官方的英文文档很详细,虽然是英文的,我想对于只要过了四级的 朋友,仔细看看明白不是什么难事,原始的官方英文文档有800多页,详细是不用说,但还 是有点罗嗦,本书的目的是让你能快速知道怎么使用matplotlib,当然个人所总结的方法未 必对于每个人都是容易接受的,但相信大多数人看完本书之后会对于matplotlib有一个比较 清晰的理解,读者如果在文中发现错误还请麻烦反馈一下。本书是对于学习中需要用到 matplotlib 的人 群 编 写 的 , 你 在 阅 读 之 前 可 能 需 要 了 解 一 些 python的知 识 , 如 果 你 对 于 python还一点不懂,那么还是请你看下python相关的文档吧。
3.1 函数处理部分(numpy 的使用)......................................................... 2 3.2 Matplotlib 使用风格介绍.................................................................. 4 四、 2D 图的画法.................................................................................... 9 4.1 坐标轴....................................................................................... 9
>>> np.arange(0,1,0.1)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
此函数在区间[0,1]之间以0.1为步长生成一个数组。
如果第三个参数预设为1
>>> np.arange(0,10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
键字指定是否包括终值,缺省设置是包括终值:
>>> np.linspace(0, 1, 12)
array([ 0.
, 0.09090909, 0.18181818, 0.27272727, 0.36363636,
2
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
的函数计算。
3.2 Matplotlib 使用风格介绍
Matplotlib 的使用中有好几种输出风格,有类 matlab 的风格,和官方文档的使用的 as 风格 ,
matplotlib 对于图像美化方面的比较完善,可以自定义线条的颜色和样式,可以在一张 绘图纸上绘制多张小图,也可以在一张图上绘制多条线,可以很方便地将数据可视化并对比 分析。
三、Matplotlib 使用入门
Matplotlib的使用中有好几种输出风格,有matlab的风格,和官方文档的使用的as风格,各 有所长,本文对比介绍matplotlib官方文档中的使用风格, 我们画图的目的是要将函数已图像显现出来,所以我们要用python处理的东西有两个,一 个是函数,另一个是图像,函数部分在matplotlib的使用中是用了numpy这个三方库,这个 库有着很大的科学计算功能,但是不用担心,在使用中你会发现他的好用,
二、matplotlib 简介
Matplotlib 是一个在 python 下实现的类 matlib 的纯 python 的三方库,旨在用 python 实现 matlab 的功能,是 python 下最出色的绘图库,功能很完善,其风格跟 matlib 很相似 ,
1
同时也继承了 python 的简单明了的风格,其可以很方便地设计和输出二维以及三维的数据 , 其提供了常规的笛卡尔坐标,极坐标,球坐标,三维坐标等。其输出的图片质量也达到了科 技论文中的印刷质量,日常的基本绘图更不在话下。
1. 坐标区间设置......................................................................... 9 2. 设置网格线.......................................................................... 12 3. 自定义坐标轴刻度.................................................................. 13 4. 自动标注坐标轴刻度................................................................13 4.2 线条......................................................................................... 14 4.3 标签注释....................................................................................16 4.4 图像排版....................................................................................16 五、 3D 绘图方法................................................................................... 16 六、 后记............................................................................................ 16
相关文档
最新文档