Dalam era kecerdasan buatan dan data besar hari ini, visualisasi data telah menjadi pautan yang sangat penting dalam aplikasi analisis data. Visualisasi data boleh membantu kami memahami data dengan lebih intuitif, menemui corak dan anomali dalam data, dan juga membantu kami menyampaikan analisis data kami kepada orang lain dengan lebih jelas.
Python ialah salah satu bahasa pengaturcaraan yang paling banyak digunakan dan ia berfungsi dengan baik dalam bidang analisis data dan perlombongan data. Python menyediakan banyak perpustakaan visualisasi data, seperti Matplotlib, Seaborn, Bokeh, dll. Antaranya, Matplotlib ialah salah satu perpustakaan visualisasi data yang paling terkenal dalam Python Ia menyediakan fungsi visualisasi yang sangat kaya, bagaimanapun, dokumentasi rasmi tidak begitu terperinci mengenai teknologi teras visualisasi data Matplotlib teknologi asas dilaksanakan. Oleh itu, artikel ini akan menumpukan pada cara menggunakan teknologi asas Python untuk mencapai visualisasi data dan menyediakan contoh kod khusus.
Matplotlib ialah perpustakaan visualisasi data yang digunakan secara meluas dalam Python, dan teknologi asas adalah berdasarkan pyplot.
Kami biasanya mengimport perpustakaan visualisasi dahulu, kemudian mencipta contoh grafik melalui fungsi plot(), dan kemudian mencipta dan memaparkan grafik melalui satu siri fungsi.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan perpustakaan Matplotlib dalam Python untuk melukis lengkung koordinat dengan paksi-x sebagai paksi mendatar dan paksi-y sebagai paksi menegak.
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()
Dengan kod di atas, anda boleh melukis lengkung koordinat dengan mudah dengan paksi-x sebagai paksi mengufuk dan paksi-y sebagai paksi menegak.
Dalam kod di atas, kami mula-mula menjana julat nilai paksi-x, dan kemudian mengira cos(x) dan sin( x ) nilai. Seterusnya, kami mencipta kanvas dan subplot, dan kemudian menggunakan fungsi plot() untuk melaksanakan operasi lukisan. Akhir sekali, kami menetapkan tajuk, nama paksi x/y dan legenda graf melalui beberapa fungsi, dan kemudian memanggil fungsi show() untuk memaparkan contoh kanvas.
Antaranya, sublibrary matplotlib.pyplot ialah modul lukisan di bawah perpustakaan Matplotlib, yang menyediakan pelbagai fungsi untuk melukis pada tatasusunan NumPy. Pelaksanaan teknologi asas Matplotlib boleh difahami dari dua aspek, iaitu FigureCanvas dan Renderer, iaitu objek canvas dan renderer dalam Matplotlib.
FigureCanvas ialah kelas paparan grafik berorientasikan objek dalam Matplotlib Ia bertanggungjawab untuk berinteraksi dengan peranti lukisan dan mengeluarkan hasil lukisan ke paparan. Dalam contoh di atas, kami mencipta Rajah, objek kanvas, melalui plt.subplots(). Semua operasi lukisan seterusnya dilakukan pada kanvas ini.
Renderer ialah objek pemapar dalam Matplotlib Ia bertanggungjawab untuk melukis garisan, titik, teks, dll. ke dalam imej, iaitu pemaparan pada kanvas. Dalam contoh di atas, kami menggunakan fungsi ax.plot() untuk melukis lengkung cos(x) dan sin(x), dan fungsi ini sebenarnya menggunakan objek pemapar untuk melukis grafik. Dalam proses ini, Axis X/Y Limiter mula-mula dipanggil untuk menentukan julat data pada setiap paksi koordinat, kemudian Scaler digunakan untuk menukar data asal kepada koordinat pada kanvas, dan akhirnya Renderer digunakan untuk melaksanakan lukisan sebenar operasi.
Seaborn ialah perpustakaan lukisan peringkat lebih tinggi berdasarkan Matplotlib Ia menyediakan API yang lebih ringkas dan mudah digunakan sambil mengekalkan ciri-ciri Matplotlib bagi teknologi lukisan asas, boleh dikatakan bahawa Seaborn adalah tambahan dan penambahbaikan kepada Matplotlib.
Kami mengambil lukisan histogram univariat sebagai contoh untuk menunjukkan contoh kod khusus menggunakan perpustakaan Seaborn. Contoh ini akan menggunakan set data "mpg" terbina dalam pustaka 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()
Dengan kod di atas, anda boleh melukis histogram yang menunjukkan taburan data mpg.
Dalam kod di atas, kami mula-mula menetapkan gaya dan warna latar belakang perpustakaan Seaborn, dan kemudian membaca mpg yang disertakan dengan Seaborn set data. Kemudian, kami menggunakan fungsi sns.distplot() untuk melukis histogram dan menetapkan beberapa parameter tambahan untuk melaraskan kesan grafik. Akhir sekali, kami menggunakan fungsi plt.title(), plt.xlabel() dan plt.ylabel() untuk menetapkan tajuk graf, nama paksi x/y dan maklumat lain, dan kemudian panggil fungsi plt.show() untuk memaparkan graf.
Proses pelaksanaan teknologi asas Seaborn adalah serupa dengan Matplotlib, dan lukisan juga dilaksanakan melalui FigureCanvas dan Renderer. Dalam teknologi asas Seaborn, objek FigureCanvas dicipta melalui FacetGrid, dan lukisan adalah berdasarkan objek kanvas ini. Pada masa yang sama, lukisan dalam perpustakaan Seaborn dilaksanakan terutamanya melalui kelas AxesSubplot. Kelas ini ialah subkelas kelas Axes dalam Matplotlib, tetapi ia direka bentuk untuk menjadi lebih cekap dan lebih mudah untuk digunakan, jadi ia digunakan oleh Seaborn sebagai pelaksanaan utama teknologi lukisan asas.
Bokeh ialah perpustakaan Python untuk visualisasi data dan analisis penerokaan yang interaktif, responsif dan cekap untuk mencipta Ciri visualisasi data dinamik. Teknologi lukisan dalam teknologi asas Bokeh dilaksanakan terutamanya berdasarkan JavaScript, jadi ia boleh mencapai kesan visualisasi yang lebih interaktif dan dinamik.
下面展示一个简单的 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数据可视化库背后的原理和细节。
Atas ialah kandungan terperinci Cara melaksanakan visualisasi data teknologi asas Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!