用seaborn绘制堆积柱状图和折线图到一张画布上,堆积柱状图和折线图分别使用不同的Y轴
时间: 2024-06-12 19:04:37 浏览: 256
以下是使用seaborn绘制堆积柱状图和折线图到一张画布上的示例代码:
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 创建数据
data1 = {'Year': [2015, 2016, 2017, 2018, 2019],
'Sales': [100, 120, 140, 160, 180],
'Expenses': [80, 90, 100, 110, 120]}
data2 = {'Year': [2015, 2016, 2017, 2018, 2019],
'Profit': [20, 30, 40, 50, 60]}
# 创建画布和轴对象
fig, ax1 = plt.subplots(figsize=(10, 6))
ax2 = ax1.twinx()
# 绘制堆积柱状图
sns.barplot(x='Year', y='Sales', data=data1, color='blue', ax=ax1)
sns.barplot(x='Year', y='Expenses', data=data1, color='red', ax=ax1, bottom=data1['Sales'])
# 绘制折线图
sns.lineplot(x='Year', y='Profit', data=data2, color='green', ax=ax2)
# 设置轴标签和标题
ax1.set_ylabel('Sales and Expenses')
ax2.set_ylabel('Profit')
ax1.set_xlabel('Year')
ax1.set_title('Sales, Expenses and Profit by Year')
# 显示图形
plt.show()
```
解释:
1. 首先,我们创建两个数据集data1和data2,分别表示销售额、成本和利润的数据。
2. 然后,我们创建画布和轴对象,使用twinx()方法创建一个新的Y轴,使得堆积柱状图和折线图使用不同的Y轴。
3. 接着,我们使用seaborn的barplot()方法绘制堆积柱状图,其中color参数指定柱状图的颜色,bottom参数指定第二个柱状图的底部位置,使其叠加在第一个柱状图之上。
4. 然后,我们使用seaborn的lineplot()方法绘制折线图,其中color参数指定折线图的颜色。
5. 最后,我们设置轴标签和标题,然后调用show()方法显示图形。
运行以上代码,将会得到一张堆积柱状图和折线图到一张画布上的图形。
阅读全文