Matplotlib和Seaborn数据可视化教程:从入门到实战
创作时间:
作者:
@小白创作中心
Matplotlib和Seaborn数据可视化教程:从入门到实战
引用
1
来源
1.
https://www.geeksforgeeks.org/plotting-with-seaborn-and-matplotlib/
Matplotlib和Seaborn是Python中两个最强大的数据可视化库。Matplotlib提供了低级、灵活的绘图方法,而Seaborn则通过内置主题和常见图表函数简化了绘图过程。
在开始绘图之前,请确保已经安装了这两个库:
pip install matplotlib seaborn
然后在脚本中导入它们:
import matplotlib.pyplot as plt
import seaborn as sns
使用Matplotlib进行基本绘图
Matplotlib允许使用plt.plot()
创建简单的图表。下面是一个绘制线条和点的例子:
import matplotlib.pyplot as plt
plt.plot([0, 1], [10, 11], label='Line 1')
plt.plot([0, 1], [11, 10], label='Line 2')
plt.scatter([0, 1], [10.5, 10.5], color='blue', marker='o', label='Dots')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Simple Line and Dot Plot')
plt.legend()
plt.show()
解释:
plt.plot([0, 1], [10, 11], label='Line 1')
绘制从(0,10)到(1,11)的上升线。plt.plot([0, 1], [11, 10], label='Line 2')
绘制从(0,11)到(1,10)的下降线。label='Line 1' / 'Line 2'
为图例分配名称。
为什么结合使用Matplotlib和Seaborn?
Seaborn使绘图更简单,但它是在Matplotlib基础上构建的,因此我们可以将两者结合使用以获得更好的效果:
- 定制化:Matplotlib允许完全控制图表(轴、标签、网格、颜色等)。
- 美观性:Seaborn具有内置主题和样式,使图表看起来更美观。
- 统计图表:Seaborn包含特殊图表,如小提琴图和KDE图。
- 灵活性:Matplotlib允许额外的定制和组合多个图表。
使用Seaborn风格增强Matplotlib
Seaborn通过内置主题和高级函数简化了数据可视化。
示例1:将Seaborn主题应用于Matplotlib图表
import matplotlib.pyplot as plt
import seaborn as sns
# 应用Seaborn主题
sns.set_theme(style="darkgrid")
# 创建一个简单的Matplotlib图表
x = [1, 2, 3, 4, 5]
y = [10, 12, 15, 18, 22]
plt.plot(x, y, marker='o', linestyle='-', color='blue', label="Trend")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Matplotlib Plot with Seaborn Theme")
plt.legend()
plt.show()
输出:
解释:
sns.set_theme(style="darkgrid")
应用Seaborn主题以获得更清晰的外观。- 图表包含一个带有标记的简单线条,配有标签和图例。
示例2:使用Matplotlib自定义Seaborn图表
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
data = pd.DataFrame({
'Year': [2018, 2019, 2020, 2021, 2022],
'Sales': [100, 150, 200, 250, 300]
})
plt.figure(figsize=(8, 5))
sns.lineplot(x='Year', y='Sales', data=data, marker='o')
# 使用Matplotlib进行自定义
plt.title("Yearly Sales Growth", fontsize=14, fontweight='bold')
plt.xlabel("Year", fontsize=12)
plt.ylabel("Total Sales", fontsize=12)
plt.xticks(rotation=45)
plt.grid(True, linestyle='--')
plt.show()
输出:
解释:
- Seaborn的
sns.lineplot()
从DataFrame创建线图。 - Matplotlib函数自定义标题、轴标签和网格样式。
示例3:叠加Seaborn和Matplotlib图表
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.linspace(0, 10, 20)
y = np.sin(x)
plt.figure(figsize=(8, 5))
# Seaborn线图
sns.lineplot(x=x, y=y, color='blue', label='Sine Wave')
# Matplotlib散点图
plt.scatter(x, y, color='red', marker='o', label="Data Points")
plt.title("Seaborn Line Plot with Matplotlib Scatter Overlay")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.show()
输出:
解释:
sns.lineplot()
创建平滑的正弦波。plt.scatter()
叠加红色数据点以增强可视化。
示例4:使用Matplotlib注释增强Seaborn直方图
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
data = np.random.randn(1000)
plt.figure(figsize=(8, 5))
sns.histplot(data, kde=True, bins=30, color='purple')
# 使用Matplotlib添加平均线
mean_value = np.mean(data)
plt.axvline(mean_value, color='red', linestyle='dashed', linewidth=2)
plt.text(mean_value + 0.1, 50, f'Mean: {mean_value:.2f}', color='red')
plt.title("Distribution with Seaborn and Matplotlib Customization")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
输出:
解释:
sns.histplot()
创建带有KDE曲线的直方图。plt.axvline()
在平均值处绘制虚线。plt.text()
在图上标注平均值。
热门推荐
【数说长三角】“天空之城”争夺战,南京为何能和上海并列第一梯队
网络安全中的零信任架构实践与探索
春季运动服买什么材质的比较好
上海这条长达4公里的高架桥主线焕然一新!
内存管理——页表、页表项、页目录、多级页表
香港股票市场的构成及其对投资者决策的影响
计算机系统安全的发展历史:从物理安全到云计算威胁
市场营销人员的技能要求有哪些
磷酸铁锂电池夏天怕高温吗?磷酸铁锂电池耐高温吗
绿茶的冲泡方法,泡绿茶的正确方法(三大投法及技巧)
南通十大历史名人排行榜
从传统水产养殖到特色水产养殖,来看中山坦洲如何走出强镇兴村富民路
尿常规检查价格及注意事项全解析
使用LSTM模型进行时间序列数据预测的完整示例
西兰花煮黄了还能吃吗?西兰花焯水几分钟能熟?
选择合适的 PCB 板元件的指南
钠电池都属于第9类危险货物吗?
跨专业应聘时,如何突出自己的学习能力和适应能力符合面试技巧
如何高效面试销售人员:掌握核心技巧与评估策略
缅甸地震波及瑞丽:直击受灾与应对现场
毕业致谢论文写作指南:从结构到情感表达的全方位指导
川大华西医院获捐1个亿培养医生是真的吗?
一文读懂电池型号:如何快速识别各种电池
儿童首次办理身份证全流程指南
智能化集成系统:现代建筑与城市管理的智慧大脑
清明带孩子扫墓的4个教育意义:在祭扫中唤醒生命的根系与翅膀
五步法快速促进桂花水培生根,轻松掌握家中绿植繁殖技巧
ENF级板材甲醛释放量检测标准及测定方法
如何正确使用外地车牌?使用过程中有哪些常见问题需要解决?
大众健康丨慢性阻塞性肺疾病急性加重该如何“平稳”度过?