Python数据可视化

发布于:2025-03-08 ⋅ 阅读:(96) ⋅ 点赞:(0)

1.Python 数据可视化全指南 🚀

数据可视化是数据分析和机器学习的关键环节,Python 提供了丰富的可视化库,如 MatplotlibSeabornPlotlyPandas 内置可视化等。以下是 Python 可视化的核心内容及最佳实践。


2. 基础可视化库

2.1 Matplotlib(基础绘图库)

Matplotlib 是 Python 最基础的绘图库,适用于静态 2D 图表,功能强大但语法较底层。

📌 常见图表

  • 折线图 (plt.plot)
  • 柱状图 (plt.bar)
  • 直方图 (plt.hist)
  • 散点图 (plt.scatter)

📌 示例

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]

plt.plot(x, y, marker='o', linestyle='-', color='b', label='折线图')
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.title('Matplotlib 折线图示例')
plt.legend()
plt.show()

2.2 Seaborn(统计绘图)

Seaborn 基于 Matplotlib,适用于统计分析,默认提供更美观的主题风格。

📌 常见图表

  • 直方图 (sns.histplot)
  • 箱线图 (sns.boxplot)
  • 相关性热力图 (sns.heatmap)
  • 分布图 (sns.kdeplot)

📌 示例

import seaborn as sns
import matplotlib.pyplot as plt

# 生成数据
tips = sns.load_dataset('tips')

# 画出总账单与小费的关系(散点图)
sns.scatterplot(data=tips, x='total_bill', y='tip', hue='sex')
plt.title('Seaborn 散点图示例')
plt.show()

2.3 Pandas 内置可视化

Pandas 结合 Matplotlib 进行快速可视化,适用于数据分析。

📌 示例

import pandas as pd
import matplotlib.pyplot as plt

# 生成数据
df = pd.DataFrame({'A': range(1, 11), 'B': [3, 5, 7, 9, 11, 15, 17, 19, 21, 25]})
df.plot(x='A', y='B', kind='line', marker='o', title='Pandas 折线图')
plt.show()

3. 交互式可视化

3.1 Plotly(高级交互图表)

Plotly 适用于交互式数据分析,支持 2D 和 3D 图表,适合 Web 可视化。

📌 示例

import plotly.express as px

df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species', title='Plotly 交互式散点图')
fig.show()

3.2 Bokeh(Web 端可视化)

Bokeh 适用于浏览器端可视化,交互性强。

📌 示例

from bokeh.plotting import figure, show
from bokeh.io import output_notebook

output_notebook()

p = figure(title="Bokeh 折线图", x_axis_label='x', y_axis_label='y')
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2)
show(p)

4. 进阶可视化

4.1 相关性热力图

import seaborn as sns
import matplotlib.pyplot as plt

df = sns.load_dataset('iris')
corr = df.corr()

plt.figure(figsize=(8,6))
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('相关性热力图')
plt.show()

4.2 词云

from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "Python 数据可视化 Matplotlib Seaborn Plotly Pandas Bokeh"
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)

plt.figure(figsize=(10,5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

5.3D 可视化

5.1 Matplotlib 3D 绘图

import numpy as np
import matplotlib.pyplot as plt
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.title("3D 曲面图")
plt.show()

6. 地图可视化

6.1 Folium(地理地图)

import folium

# 创建地图
m = folium.Map(location=[34.0522, -118.2437], zoom_start=10)

# 添加标记
folium.Marker([34.0522, -118.2437], popup='Los Angeles', tooltip='点击查看').add_to(m)

# 显示地图
m

7.总结

适用场景 交互性 适用人群
Matplotlib 基础绘图 初学者
Seaborn 统计分析 数据分析师
Pandas 快速可视化 数据科学家
Plotly 交互式可视化 Web 开发者
Bokeh 高级交互 数据工程师
Folium 地理地图 GIS 开发

🎯 推荐路径

  1. 初学者:先学 MatplotlibSeaborn
  2. 数据分析:熟悉 PandasSeaborn
  3. Web 可视化:掌握 PlotlyBokeh
  4. 地理信息可视化:学习 Folium


网站公告

今日签到

点亮在社区的每一天
去签到