Petua Didedahkan: Gunakan Python untuk melukis carta 3D yang cantik
Pengenalan:
Dalam bidang visualisasi data, membuat carta 3D yang cantik boleh memaparkan ciri dan arah aliran data dengan lebih intuitif. Python, sebagai bahasa pengaturcaraan yang berkuasa, mempunyai banyak perpustakaan dan alatan yang boleh membantu kami mencapai matlamat ini. Artikel ini akan berkongsi beberapa petua dan contoh kod khusus untuk melukis carta 3D yang cantik dalam Python untuk membantu pembaca memahami dan menerapkannya dengan lebih baik.
1. Penyediaan:
Sebelum kita mula, kita perlu memasang beberapa perpustakaan Python yang diperlukan, termasuk matplotlib, numpy dan mpl_toolkits.mplot3d. Anda boleh memasangnya melalui kod berikut:
pip install matplotlib pip install numpy pip install mpl_toolkits.mplot3d
2. Lukis plot serakan 3D yang mudah:
Mula-mula, mari lukis plot serakan 3D yang mudah. Kodnya adalah seperti berikut:
import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = np.random.standard_normal(100) y = np.random.standard_normal(100) z = np.random.standard_normal(100) ax.scatter(x, y, z) plt.show()
Dalam contoh ini, kita mula-mula mencipta objek Figure
dan objek Axes3D
dan menambah objek Axes3D
ditambahkan pada Rajah
. Kemudian, kami menjana 100 nombor rawak yang mematuhi taburan normal piawai sebagai koordinat x, y, z dan menggunakan kaedah scatter
untuk melukis plot serakan pada sistem koordinat 3D. Figure
对象和一个Axes3D
对象,并通过add_subplot
方法将Axes3D
对象添加到Figure
中。然后,我们生成100个服从标准正态分布的随机数作为x、y、z坐标,并使用scatter
方法在3D坐标系上绘制散点图。
三、绘制3D曲面图:
接下来,我们尝试绘制一个3D曲面图。代码如下:
import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) ax.plot_surface(X, Y, Z, cmap='viridis') plt.show()
在这个示例中,我们首先生成了x和y坐标的一维数组,并利用meshgrid
方法生成了一个网格,然后根据公式计算了z坐标的值。最后,使用plot_surface
方法绘制了3D曲面图。
四、绘制3D柱状图:
除了散点图和曲面图,我们还可以绘制3D柱状图来展示数据的分布情况。代码如下:
import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = np.arange(10) y = np.arange(10) X, Y = np.meshgrid(x, y) Z = np.random.randint(1, 10, (10, 10)) ax.bar3d(X.flatten(), Y.flatten(), np.zeros_like(Z).flatten(), 1, 1, Z.flatten()) plt.show()
在这个示例中,我们首先生成了x和y坐标的一维数组,并利用meshgrid
方法生成了一个网格,然后利用random.randint
方法生成了一个10x10的随机整数数组作为z坐标的值。最后,使用bar3d
Seterusnya, kami cuba melukis graf permukaan 3D. Kodnya adalah seperti berikut:
rrreee
meshgrid
untuk menjana grid, dan kemudian mengira nilai koordinat z mengikut formula . Akhirnya, plot permukaan 3D telah dilukis menggunakan kaedah plot_surface
. 🎜🎜4. Lukis histogram 3D: 🎜Selain plot serakan dan plot permukaan, kami juga boleh melukis histogram 3D untuk menunjukkan taburan data. Kodnya adalah seperti berikut: 🎜rrreee🎜Dalam contoh ini, kita mula-mula menjana tatasusunan satu dimensi koordinat x dan y, dan menggunakan kaedah meshgrid
untuk menjana grid, dan kemudian menggunakan random.randint menjana tatasusunan 10x10 integer rawak sebagai nilai koordinat z. Akhir sekali, histogram 3D dilukis menggunakan kaedah <code>bar3d
. 🎜🎜Kesimpulan: 🎜Melalui perkongsian artikel ini, kami telah mempelajari beberapa teknik dan contoh kod khusus untuk melukis carta 3D yang cantik dalam Python, termasuk melukis plot serakan, plot permukaan dan histogram. Teknik ini boleh membantu kami memaparkan ciri dan arah aliran data dengan lebih baik dan meningkatkan kesan visualisasi data. Diharapkan pembaca dapat menguasai lagi kemahiran ini melalui pembelajaran dan latihan, dan menggunakannya secara fleksibel dalam projek sebenar. 🎜Atas ialah kandungan terperinci Petua Didedahkan: Lukis Carta 3D Cantik dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!