【Python】数据可视化之点线图
Seaborn:高阶封装,通过sns.lineplot()+sns.scatterplot()快速生成。使用LaTeX数学表达式:plt.title(r'$\alpha$ vs $\beta$')Matplotlib:基础绘图库,plt.plot()与plt.scatter()组合实现。添加误差线:ax.errorbar(x, y, yerr=std)大数据集使用plot(kind='hexbin
一、基础概念与核心库
1.1 点线图定义
点线图(Scatter Plot with Line)是数据可视化中用于展示变量间关系的复合图表,通过:
点:表示离散数据点(如散点图)
线:连接数据点展示趋势(如折线图)
适用于时间序列分析、相关性研究等场景
1.2 Python核心库
Matplotlib:基础绘图库,plt.plot()与plt.scatter()组合实现
Seaborn:高阶封装,通过sns.lineplot()+sns.scatterplot()快速生成
Plotly:交互式可视化,支持动态悬停效果
二、基础实现代码
2.1 纯Matplotlib实现
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 50) y = np.sin(x) + np.random.normal(0, 0.1, 50) plt.figure(figsize=(8, 4)) plt.scatter(x, y, color='blue', alpha=0.6, label='Data Points') plt.plot(x, np.sin(x), 'r-', linewidth=2, label='Trend Line') plt.title('Sine Wave with Noise') plt.legend() plt.grid(True) plt.show()
2.2 Seaborn优化版
import seaborn as sns import pandas as pd df = pd.DataFrame({'x': x, 'y': y, 'group': np.sin(x) > 0}) sns.set_style('whitegrid') sns.scatterplot(data=df, x='x', y='y', hue='group', palette='Set2') sns.lineplot(x=x, y=np.sin(x), color='black', linestyle='--')
三、高级应用场景
3.1 多组数据对比
通过分组颜色和线型区分:
colors = sns.color_palette('husl', 3) for i, group in df.groupby('category'): sns.scatterplot(data=group, x='time', y='value', color=colors[i]) sns.lineplot(data=group, x='time', y='value', color=colors[i], linestyle='-')
3.2 动态交互可视化
使用Plotly实现悬停查看数据:
import plotly.express as px fig = px.scatter(df, x='date', y='sales', color='product', line_shape='linear', line_width=2) fig.update_traces(mode='lines+markers') fig.show()
四、优化技巧与最佳实践
4.1 视觉增强
添加误差线:ax.errorbar(x, y, yerr=std)
设置透明度:alpha=0.5避免点重叠
使用颜色渐变:cmap='viridis'映射数值
4.2 性能优化
大数据集使用plot(kind='hexbin')减少渲染点
启用WebGL加速(Plotly)
4.3 学术规范
添加图例、坐标轴标签、单位
使用LaTeX数学表达式:plt.title(r'$\alpha$ vs $\beta$')
更多推荐


所有评论(0)