Maison >développement back-end >Tutoriel Python >Comment implémenter la visualisation des données de la technologie sous-jacente de Python
À l’ère actuelle de l’intelligence artificielle et du big data, la visualisation des données est devenue un maillon très important dans les applications d’analyse de données. La visualisation des données peut nous aider à comprendre les données de manière plus intuitive, à découvrir des modèles et des anomalies dans les données, et également à transmettre plus clairement notre analyse des données aux autres.
Python est l'un des langages de programmation les plus utilisés et il fonctionne très bien dans le domaine de l'analyse de données et du data mining. Python fournit une multitude de bibliothèques de visualisation de données, telles que Matplotlib, Seaborn, Bokeh, etc. Parmi elles, Matplotlib est l'une des bibliothèques de visualisation de données les plus connues de Python. Elle fournit des fonctions de visualisation extrêmement riches. Cependant, la documentation officielle n'est pas très détaillée sur la technologie de base de visualisation de données sous-jacente à Matplotlib. la technologie sous-jacente est mise en œuvre. Par conséquent, cet article se concentrera sur la façon d'utiliser la technologie sous-jacente de Python pour réaliser la visualisation des données et fournira des exemples de code spécifiques.
Matplotlib est une bibliothèque de visualisation de données largement utilisée en Python, et la technologie sous-jacente est basée sur pyplot.
Nous importons généralement d'abord la bibliothèque de visualisation, puis créons une instance graphique via la fonction plot(), puis créons et affichons les graphiques via une série de fonctions.
Ce qui suit est un exemple simple montrant comment utiliser la bibliothèque Matplotlib en Python pour dessiner une courbe de coordonnées avec l'axe des x comme axe horizontal et l'axe des y comme axe vertical.
import matplotlib.pyplot as plt import numpy as np # 生成X轴的范围是(-π,π)内的等差数列 x = np.linspace(-np.pi,np.pi,256,endpoint=True) # 计算cos(x)和sin(x)的值 C,S = np.cos(x), np.sin(x) #创建画布和子图 fig,ax = plt.subplots() # 画出cos(x)和sin(x)的曲线图 ax.plot(x,C,label='cos(x)') ax.plot(x,S,label='sin(x)') # 设置标题,x轴,y轴的名称 ax.set_title('Cos and Sin Function') ax.set_xlabel('X Axis') ax.set_ylabel('Y Axis') # 设置图例 ax.legend() # 显示图形 plt.show()
Avec le code ci-dessus, vous pouvez facilement dessiner une courbe de coordonnées avec l'axe des x comme axe horizontal et l'axe des y comme axe vertical.
Dans le code ci-dessus, nous avons d'abord généré la plage de valeurs de l'axe des x, puis calculé les valeurs de cos(x) et sin(x). Ensuite, nous créons un canevas et un sous-tracé, puis utilisons la fonction plot() pour effectuer des opérations de dessin. Enfin, nous définissons le titre, le nom de l'axe x/y et la légende du graphique via certaines fonctions, puis appelons la fonction show() pour afficher l'instance du canevas.
Parmi eux, la sous-bibliothèque matplotlib.pyplot est le module de dessin de la bibliothèque Matplotlib. Elle fournit diverses fonctions pour dessiner sur des tableaux NumPy. L'implémentation de la technologie sous-jacente de Matplotlib peut être comprise sous deux aspects, à savoir FigureCanvas et Renderer, qui sont respectivement les objets canevas et rendu dans Matplotlib.
FigureCanvas est une classe d'affichage graphique orientée objet dans Matplotlib. Elle est responsable de l'interaction avec le dispositif de dessin et de la sortie des résultats du dessin sur l'écran. Dans l'exemple ci-dessus, nous avons créé une figure, un objet canevas, via plt.subplots(). Toutes les opérations de dessin ultérieures sont effectuées sur cette toile.
Renderer est un objet de rendu dans Matplotlib. Il est chargé de dessiner les lignes, les points, le texte, etc. du dessin en images, c'est-à-dire le rendu sur la toile. Dans l'exemple ci-dessus, nous avons utilisé la fonction ax.plot() pour dessiner les courbes de cos(x) et sin(x), et cette fonction utilise en fait un objet de rendu pour dessiner des graphiques. Dans ce processus, le limiteur d'axe X/Y est d'abord appelé pour déterminer la plage de données sur chaque axe de coordonnées, puis le scaler est utilisé pour convertir les données d'origine en coordonnées sur le canevas, et enfin le moteur de rendu est utilisé pour implémenter le dessin réel. opération.
Seaborn est une bibliothèque de dessins de niveau supérieur basée sur Matplotlib. Elle fournit une API plus simple et plus facile à utiliser tout en conservant la technologie de dessin sous-jacente dans Matplotlib. complément à Matplotlib et amélioration.
Nous prenons le dessin d'un histogramme univarié comme exemple pour montrer des exemples de code spécifiques à l'aide de la bibliothèque Seaborn. Cet exemple utilisera l'ensemble de données "mpg" intégré à la bibliothèque Seaborn.
import seaborn as sns # 设置Seaborn图库的风格和背景颜色 sns.set(style='whitegrid', palette='pastel') # 读取数据 mpg = sns.load_dataset("mpg") # 绘制直方图,并设置额外参数 sns.distplot(mpg['mpg'], bins=20, kde=True, rug=True) # 设置图形标题以及X轴,Y轴的标签 plt.title('Histogram of mpg ($mu=23.45, ; sigma=7.81$)') plt.xlabel('MPG') plt.ylabel('Frequency') # 显示图形 plt.show()
Avec le code ci-dessus, vous pouvez dessiner un histogramme montrant la distribution des données mpg.
Dans le code ci-dessus, nous définissons d'abord le style et la couleur d'arrière-plan de la bibliothèque Seaborn, puis lisons l'ensemble de données mpg fourni avec Seaborn. Ensuite, nous avons utilisé la fonction sns.distplot() pour dessiner un histogramme et définir quelques paramètres supplémentaires pour ajuster l'effet graphique. Enfin, nous utilisons les fonctions plt.title(), plt.xlabel() et plt.ylabel() pour définir le titre du graphique, le nom de l'axe x/y et d'autres informations, puis appelons la fonction plt.show(). pour afficher le graphique.
Le processus de mise en œuvre de la technologie sous-jacente de Seaborn est similaire à Matplotlib, et le dessin est également implémenté via FigureCanvas et Renderer. Dans la technologie sous-jacente de Seaborn, l'objet FigureCanvas est créé via FacetGrid et le dessin est basé sur cet objet canevas. Dans le même temps, le dessin dans la bibliothèque Seaborn est principalement implémenté via la classe AxesSubplot. Cette classe est une sous-classe de la classe Axes dans Matplotlib, mais elle est conçue pour être plus efficace et plus facile à utiliser, elle est donc utilisée par Seaborn comme implémentation principale de la technologie de dessin sous-jacente.
Bokeh est une bibliothèque Python pour la visualisation de données et l'analyse exploratoire, interactive, réactive et efficace pour créer des visualisations de données dynamiques. La technologie de dessin sous-jacente à Bokeh est principalement implémentée sur la base de JavaScript, ce qui permet d'obtenir des effets de visualisation plus interactifs et dynamiques.
下面展示一个简单的 Bokeh 代码示例,说明如何在 Python 中使用 Bokeh 库绘制一个5条折线图,其中使用 Bokeh 提供的工具箱来进行交互式操作。
from bokeh.plotting import figure, show from bokeh.io import output_notebook # 启用Jupyter Notebook绘图 output_notebook() # 创建一个 Bokeh 图形对象 p = figure(title="Simple Line Graph") # 创建折线图 x = [1, 2, 3, 4, 5] y = [6, 7, 2, 4, 5] p.line(x, y, legend="Line A", line_width=2) y2 = [2, 3, 4, 5, 6] p.line(x, y2, legend="Line B", line_width=2) y3 = [4, 5, 1, 7, 8] p.line(x, y3, legend="Line C", line_width=2) y4 = [6, 2, 4, 8, 1] p.line(x, y4, legend="Line D", line_width=2) y5 = [5, 8, 6, 2, 4] p.line(x, y5, legend="Line E", line_width=2) # 添加工具箱 p.toolbar_location = "above" p.toolbar.logo = "grey" # 设置图形的X轴,Y轴以及图例 p.xaxis.axis_label = "X" p.yaxis.axis_label = "Y" p.legend.location = "bottom_right" # 显示图形 show(p)
通过上述代码,可以绘制出一个包含5条折线的折线图,并且提供了一些 Bokeh 工具箱来提供交互式操作。
Bokeh 底层技术的实现过程中,最核心的部分就是基于 JavaScript 来实现绘图。在上述代码中,我们主要使用了 Bokeh 的 figure()函数来创建一个 Bokeh 图形对象。同时,我们也使用了 Bokeh 提供的 line()函数来创建折线图,并且添加了一些工具箱和额外的功能,如工具箱的位置、X轴/Y轴的名称和图例的位置等等。
在Bokeh 底层技术的实现过程中,将Python代码转换为JavaScript代码非常重要。Bokeh 将Python代码转换为 JavaScript 代码,然后使用 Web 技术在前端绘图。Bokeh 库中的 BokehJS 是使用 TypeScript 编写的 JavaScript 库,它实现了所有 Bokeh 的绘图功能。因此,在使用Bokeh库绘制数据可视化时,我们也需要对比对JavaScript进行一些调试和定制。
数据可视化是一个重要的环节,而Python通过各种底层技术提供了多种数据可视化库,其中最为流行的有Matplotlib、Seaborn和Bokeh等。这些库都支持Python本身的各种数据类型,并且能够提供非常高效,简洁和灵活的绘制方法。
本文主要介绍了使用Python底层技术实现数据可视化的方法,并提供了各库中的具体代码示例。通过学习这些底层技术,可以更加深入地了解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!