Maison >développement back-end >Tutoriel Python >Apprenez étape par étape à utiliser la fonction plot() pour dessiner des images en Python
Cet article vous apporte des connaissances pertinentes sur python. Il présente principalement les problèmes liés à l'utilisation de la fonction plot() pour dessiner des images, y compris la compréhension et l'utilisation de base de cette fonction, ainsi que les dessins de visualisation de données et les fonctions de base de celle-ci. fonction. Jetons un coup d’œil aux paramètres. J’espère que cela sera utile à tout le monde.
Apprentissage recommandé : Tutoriel vidéo Python
Dans l'utilisation de Python pour la programmation de visualisation de données, la bibliothèque matplotlib est une bibliothèque tierce couramment utilisée que nous utilisons pour tracer des données . Il contient diverses fonctions, c'est-à-dire différents types de graphiques. Pour utiliser les fonctions de la bibliothèque matplotlib, vous devez comprendre le format des données requises par la fonction. C'est également l'objet de notre étude de la bibliothèque matplotlib.
Utilisez la fonction plot() directement pour dessiner des images, ce qui concerne des données générales simples. Nous pouvons directement dessiner les données de la liste en appelant directement la fonction plot(). L'utilisation directe de la fonction plot() lors de l'apprentissage initial peut nous aider à établir les paramètres et les bases de la fonction pour l'apprentissage graphique ultérieur.
Composition du graphique matplotlib :
Utilisez directement la fonction plot() pour dessiner le graphique comme suit :
plt.plot(x, y, fmt='xxx', linestyle=, marker=, color=, linewidth=, markersize=, label=, )
où x, y représentent les coordonnées horizontales et verticales, fmt = '#color#linestyle#marker' signifie chacun paramètres de classe.
(1) linestyle : Ce champ est le style de la ligne, forme du paramètre : chaîne
paramètre linestyle | Forme de la ligne |
'-' | ligne pleine |
'--' | ligne pointillée |
'-.' | ligne pointillée |
':' | ligne pointillée |
' | sans fil | '
(2 ) largeur de ligne : Ce paramètre est l'épaisseur de la ligne. L'épaisseur est liée à la valeur définie. Forme du paramètre : valeur numérique
(3) marqueur : style de point, chaîne
marqueur. | Marquer le point |
'.' | store |
',' | pixel |
'^' 'v' '>' '<' | haut, bas, gauche et triangles rectangles |
' 1' '2' '3' '4' | Ligne à trois volets haut, bas, gauche et droite |
'o' | rond |
's' 'D ' | carré |
'p' | Pentagone |
'h' 'H' | Hexagone |
'*' | Pentagramme |
'+ ' 'x' | Croix |
'_' | Ligne horizontale |
' | ' |
(4) taille du marqueur : la taille du point, forme du paramètre : valeur numérique
(5) couleur : ajuster la couleur de la ligne et du point, chaîne, paramètre de forme caractère String
String | color |
'r' | red |
'g' | green |
'b' | Bleu |
'y' | jaune |
'c' | vert |
'm' | produit |
'k' | noir |
'w' | 白 |
此处颜色参数还可以有二进制,十进制等表示方法,同时对于颜色,RGB是三原色
(6)label:图例,legend文字
使用plot()函数时需要导入对应的库,导入库后我们在未有数据的情况下直接画图,直接画图会隐式创建Figure,Axes对象。
import matplotlib.pyplot as plt plt.plot()
下面通过构造数据绘制简单图形
首先数据构造,设置参数,参数也可以在将数据填入plot()函数的时候设置。
# 导入包 import matplotlib.pyplot as plt import numpy as np # 构造数据 # 位置 (2维:x,y一一对应) x = np.linspace(0, 2 * np.pi, 200) # 从0到2pi的200个值 y = np.sin(x) # 从sin(0)到sin(2pi)的200个值 # 颜色(0维) c = 'red' c = 'r' c = '#FF0000' # 大小(0维): 线宽 lw = 1
画出图形
# 生成一个Figure画布和一个Axes坐标系 fig, ax = plt.subplots() # 在生成的坐标系下画折线图 ax.plot(x, y, c, linewidth=lw) # 显示图形 plt.show()
图形展示:
给定两组数据,建立y与x的关系试,使用plot函数进行画图,本次画图线条选用点虚线形式,粗细选用1,点选用方形,点大小选用值为10,图例为‘1234’
import matplotlib.pyplot as plt x = [1,2,3] y = [1,2,3] y = x plt.plot(x,y,linestyle=':', linewidth=1, marker='d', markersize=10, label='1234') plt.legend()
作出图片如下;
下面我们引用numpy的linspace函数生创建均匀分布序列,然后对x,y建立数值关系,由此来创建图画。
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-100,100,10) y = x**2 + 2*x +1 plt.plot(x,y,'g-.o')
作出如下图案,由此可见,我们对于图形的设置方面,在我们熟练以后如果没有粗细的设置可以直接缩减再一个字符串里面
以上都是简单图形的讲解,我们现在通过一个简单的对数据DataFrame进行作图,在往后的数据可视化中我们需要对数据进行处理后再进行可视化。下面我们通过正、余弦函数进行作图。
#导入包 import matplotlib.pyplot as plt import numpy as np import pandas as pd #使用linspace()方法构成数据 x = np.linspace(0, 2 * np.pi, 50) # y1 = np.sin(x) y2 = np.cos(x) #转化数据形式 df = pd.DataFrame([x,y1,y2]).T #对列重新命名 df.columns = ['x','sin(x)','cos(x)'] #数据写入图像,命名图例 plt.plot(df['x'],df['sin(x)'],label='sin(x)') plt.plot(df['x'],df['cos(x)'],label='cos(x)') plt.legend()
我们通过numpy的linspace方法生成数据再通过pandas对数据进行DataFrame化再带入plot()函数,此处需要讲的就是图例的命名方法,通过在函数中写入label参数,确定图例的标签,再通过legend()函数生成图例,在后续的学习中也会讲到图例的位置、形式等的运用。
通过绘制世界人口变化曲线图了解基本图元参数设置,本次绘图过程主要是先通过对人口数据导入,了解数据构造,再进配置画图参数最后完成图形的制作,其中基本的图元参数用于别的图形也适用,在这儿学会了我们只需要了解数据结构,构造成图形所要的数据结构就可以就行画出自己想要的图形。
首先进行数据导入,了解数据结构形式。为了学习方便,选用jupyter notebook进行可视化图形讲解。
import pandas as pd datafile = r'world_population.txt' # 打开文件 df = pd.read_csv(datafile) #读取数据 df.head()#展示前面部分数据
以下就是基本的数据样式,由年份和人口数量组成
这里做了基本的图元设计,也就是对于画布的设置,前面我们所学函数参数都是对于图形中间的设置,我们构成一个可视化界面是通过画布+画中图形样式组成一个完整的可视化界面。
画布界面有画布大小,画布像素,画布界面,画布边框等设置。
import matplotlib.pyplot as plt # 画布 fig = plt.figure(figsize=(6,4), # inches dpi=120, # dot-per-inch facecolor='#BBBBBB', frameon=True, # 画布边框 ) plt.plot(df['year'],df['population']) # 标题 plt.title("1960-2009 World Population")
构成一个完整的可视化图像除了图例还有图像的标题,我们可以通过title()方法设置英文标题,中文标题要通过以下代码才能实现,因此我们如果是做中文项目在导入包以后就可以写上设置中文代码的代码串。
# 设置中文字体 plt.rcParams['font.sans-serif'] = 'SimHei' # 设置字体为简黑(SimHei) plt.rcParams['font.sans-serif'] = 'FangSong' # 设置字体为仿宋(FangSong)
当然,除了这种比较简单的图形之外我们还能对图形进行优化设置,将数据显示的更加的精美和美观,对图形优化便于实际报告中的演示也是我们现在必不可少的的一环。
import matplotlib.pyplot as plt # 设置中文字体 plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号 plt.rcParams['font.sans-serif'] = 'FangSong' # 设置字体为仿宋(FangSong) # 画布 fig = plt.figure(figsize=(6,4), # inches dpi=120, # dot-per-inch facecolor='#BBBBBB', frameon=True, # 画布边框 ) plt.plot(df['year'],df['population'],'b:o',label='人口数') # 中文标题 plt.title("1960-2009 世界人口") # 字体字典 font_dict=dict(fontsize=8, color='k', family='SimHei', weight='light', style='italic', ) # X轴标签 plt.xlabel("年份", loc='center', fontdict=font_dict) # loc: 左中右 left center right # Y轴标签 plt.ylabel("人口数",loc='top', fontdict=font_dict) # loc: 上中下 top center bottom # X轴范围 plt.xlim((2000,2010)) # X轴的起点和终点 # Y轴范围 plt.ylim(6e9,7e9) # Y轴的起点和终点 # X轴刻度 plt.xticks(np.arange(2000,2011)) # X轴刻度 plt.yticks(np.arange(6e9,7e9+1e8,1e8)) # 图例 plt.legend() # plt.legend(labels=['人口']) # 网格线 plt.grid(axis='y') # axis: 'both','x','y'
上述代码,对x轴,y轴的刻度、标签、字体进行定义,对图例、网格线等也做出了参数的设置,最后做出的图形如下图:
推荐学习:python视频教程
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!