3个经典案例熟悉Python可视化(完整源码)

本文通过Python实现的3个复杂可视化案例,每个案例均有数据和代码供大家学习使用。


包含编程资料、学习路线图、源代码、软件安装包等!【点进这里免费领取】!


3D曲面图(带等高线投影)

import numpy as np
import matplotlib.pyplot  as plt
from matplotlib import cm
from mpl_toolkits.mplot3d  import Axes3D

# 设置随机种子
np.random.seed(2025) 

# 生成数据
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)) + np.random.normal(0,  0.1, X.shape) 

# 可视化
fig = plt.figure(figsize=(14,  8))
ax = fig.add_subplot(111,  projection='3d')

# 绘制3D曲面
surf = ax.plot_surface(X,  Y, Z, cmap=cm.coolwarm,  
                       linewidth=0, antialiased=True, 
                       rstride=2, cstride=2)

# 添加等高线投影
ax.contour(X,  Y, Z, 20, zdir='z', offset=-2, 
           cmap=cm.coolwarm,  linestyles='dashed')

# 设置颜色条
fig.colorbar(surf,  shrink=0.5, aspect=10)

# 美化设置
ax.set_xlabel('X  Axis', fontsize=12, labelpad=15)
ax.set_ylabel('Y  Axis', fontsize=12, labelpad=15)
ax.set_zlabel('Z  Axis', fontsize=12, labelpad=15)
ax.set_title('3D  Surface with Contour Projection', 
             fontsize=16, pad=20)
plt.show() 

通过meshgrid生成三维坐标,结合plot_surfacecontour实现立体与平面投影的叠加,coolwarm色系增强数据对比。 

多维特征热力图(带聚类树)

import seaborn as sns
from scipy.cluster  import hierarchy

# 生成多维数据
np.random.seed(2025) 
data = np.random.rand(10,  12)  # 10个样本×12个特征
columns = [f'Feature_{i}'for i in range(1,13)]

# 计算聚类树
Z = hierarchy.linkage(data.T,  method='ward')

# 创建画布
fig = plt.figure(figsize=(14,  10))
grid = plt.GridSpec(2, 2, hspace=0.1, wspace=0.1)

# 绘制树状图
ax1 = fig.add_subplot(grid[0,  0])
hierarchy.dendrogram(Z,  orientation='left', labels=columns)
ax1.set_xticks([]) 

# 绘制热力图
ax2 = fig.add_subplot(grid[1,  0])
sns.heatmap(data,  cmap='viridis', annot=True, 
            cbar_kws={'label': 'Value Intensity'},
            yticklabels=[f'Sample_{i}'for i in range(1,11)])

# 添加分布图
ax3 = fig.add_subplot(grid[:,  1])
sns.violinplot(data=data,  palette='Set3', inner="quartile")
ax3.set_xticklabels(columns,  rotation=45)

plt.suptitle('Multi-dimensional  Feature Analysis', y=0.95)
plt.show() 

 整合树状图、热力图和小提琴图,实现多维数据的聚类分析与分布展示,viridis色系保证颜色辨识度。

极坐标动态玫瑰图 

# 生成周期性数据
np.random.seed(2025) 
theta = np.linspace(0,  2*np.pi,  8)
values = np.abs(np.random.randn(8))  * 50

# 极坐标设置
fig = plt.figure(figsize=(8,8)) 
ax = fig.add_subplot(111,  polar=True)
bars = ax.bar(theta,  values, width=0.5, 
             color=np.random.rand(8,3),  alpha=0.8)

# 添加动态旋转效果
def rotate(i):
    ax.set_theta_offset(i/10) 
    return bars

ani = FuncAnimation(fig, rotate, frames=100, 
                   interval=50)
plt.title('Dynamic  Polar Rose Diagram')
plt.show() 

极坐标系结合动态旋转,适合展示周期性数据特征。

完整代码及可视化效果可通过Jupyter Notebook分步执行,建议调整色系参数(如cmap)和布局参数(如figsize)获得最佳展示效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值