Python绘图:从基础到进阶的图表绘制指南
Python绘图:从基础到进阶的图表绘制指南
在数据科学和机器学习领域,数据可视化是理解和传达数据的关键。Python凭借其丰富的库生态,成为绘制图表的首选语言。本文将带你从零开始,学习如何使用Matplotlib和Seaborn创建专业图表。
1. 环境准备
首先,安装必要的库:
pip install matplotlib seaborn pandas导入库并设置中文字体:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False2. 基础图表绘制
2.1 折线图
折线图适合展示趋势:
x = [1,2,3,4,5]
y = [2,4,1,5,3]
plt.plot(x, y, marker='o', linestyle='--', color='b')
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.grid(True)
plt.show()2.2 柱状图
柱状图用于比较分类数据:
categories = ['A', 'B', 'C', 'D']
values = [23, 45, 56, 12]
plt.bar(categories, values, color=['red', 'green', 'blue', 'orange'])
plt.title('柱状图示例')
plt.show()2.3 散点图
散点图显示变量关系:
import numpy as np
x = np.random.randn(100)
y = np.random.randn(100)
plt.scatter(x, y, alpha=0.5, s=50)
plt.title('散点图示例')
plt.show()2.4 饼图
饼图展示占比:
sizes = [30, 25, 20, 15, 10]
labels = ['苹果', '香蕉', '橙子', '葡萄', '其他']
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.title('水果占比')
plt.show()3. Seaborn高级绘图
Seaborn基于Matplotlib,提供更简洁的API和漂亮默认样式。
3.1 箱线图
tips = sns.load_dataset('tips')
sns.boxplot(x='day', y='total_bill', data=tips)
plt.title('每日消费金额箱线图')
plt.show()3.2 热力图
corr = tips.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('相关性热力图')
plt.show()3.3 多子图布局
fig, axes = plt.subplots(2, 2, figsize=(10,8))
sns.scatterplot(x='total_bill', y='tip', data=tips, ax=axes[0,0])
sns.histplot(tips['total_bill'], bins=20, ax=axes[0,1])
sns.barplot(x='day', y='total_bill', data=tips, ax=axes[1,0])
sns.boxplot(x='time', y='tip', data=tips, ax=axes[1,1])
plt.tight_layout()
plt.show()4. 图表美化技巧
- 设置样式:
sns.set_style('whitegrid') - 自定义颜色:使用十六进制或颜色名称
- 添加注释:
plt.annotate() - 调整图例:
plt.legend(loc='upper right')
5. 实战案例:股票走势图
import yfinance as yf
df = yf.download('AAPL', start='2023-01-01', end='2023-12-31')
plt.figure(figsize=(12,6))
plt.plot(df['Close'], label='收盘价', color='black')
plt.plot(df['Close'].rolling(window=20).mean(), label='20日均线', linestyle='--')
plt.title('苹果公司2023年股价走势')
plt.legend()
plt.show()6. 总结
Python绘图库功能强大,从简单的折线图到复杂的统计图形,都能轻松实现。掌握Matplotlib和Seaborn,你就能在数据分析和报告中呈现专业美观的可视化效果。持续练习,你会发现数据之美!