Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua Didedahkan: Lukis Carta 3D Cantik dengan Python

Petua Didedahkan: Lukis Carta 3D Cantik dengan Python

王林
王林asal
2023-09-28 13:01:501158semak imbas

Petua Didedahkan: Lukis Carta 3D Cantik dengan Python

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

3. Lukiskan graf permukaan 3D:

Seterusnya, kami cuba melukis graf permukaan 3D. Kodnya adalah seperti berikut:
rrreee

Dalam contoh ini, kami mula-mula menghasilkan tatasusunan satu dimensi koordinat x dan y, dan menggunakan kaedah 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn