pandas绘图下方折线图上方柱状图
时间: 2023-07-07 15:46:39 浏览: 109
您可以使用 matplotlib 库来实现 pandas 绘图下方折线图上方柱状图的效果。下面是一个简单的示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
df = pd.DataFrame({
'日期': ['1月', '2月', '3月', '4月', '5月'],
'销售额': [100, 200, 300, 400, 500],
'利润率': [0.1, 0.15, 0.2, 0.25, 0.3]
})
# 绘制折线图
fig, ax1 = plt.subplots()
ax1.plot(df['日期'], df['销售额'], color='red', linewidth=2)
ax1.set_ylabel('销售额')
# 绘制柱状图
ax2 = ax1.twinx()
ax2.bar(df['日期'], df['利润率'], alpha=0.3)
ax2.set_ylabel('利润率')
# 设置图例
ax1.legend(['销售额'], loc='upper left')
ax2.legend(['利润率'], loc='upper right')
# 显示图形
plt.show()
```
运行上述代码,即可得到 pandas 绘图下方折线图上方柱状图的效果。您可以根据需要修改代码中的数据和参数来适应自己的需求。
相关问题
pandas画图折线图和柱状图,两个图结合的图
可以使用pandas中的plot函数绘制折线图和柱状图,并使用matplotlib库进行绘图。
例如,我们创建一个包含两列数据的DataFrame:
```python
import pandas as pd
import numpy as np
# 创建DataFrame
data = {'year': [2015, 2016, 2017, 2018, 2019],
'sales': [100, 150, 200, 180, 220],
'profit': [20, 30, 40, 35, 50]}
df = pd.DataFrame(data)
```
然后,我们可以使用plot函数绘制折线图和柱状图:
```python
import matplotlib.pyplot as plt
# 绘制折线图
df.set_index('year')['sales'].plot(kind='line', color='blue', label='Sales')
df.set_index('year')['profit'].plot(kind='line', color='red', label='Profit')
plt.ylabel('Amount')
plt.legend(loc='best')
plt.title('Sales and Profit')
# 绘制柱状图
df.set_index('year').plot(kind='bar', rot=0)
plt.ylabel('Amount')
plt.title('Sales and Profit')
# 结合两个图
fig, ax1 = plt.subplots()
ax1.plot(df['year'], df['sales'], color='blue')
ax1.set_ylabel('Sales', color='blue')
ax1.tick_params('y', colors='blue')
ax2 = ax1.twinx()
ax2.bar(df['year'], df['profit'], color='red', alpha=0.3)
ax2.set_ylabel('Profit', color='red')
ax2.tick_params('y', colors='red')
plt.title('Sales and Profit')
plt.show()
```
最后一个图中,我们使用了subplots函数创建一个包含两个y轴的子图,并在第一个y轴上绘制了折线图,在第二个y轴上绘制了柱状图。注意调整柱状图的透明度,以确保两个图形不会互相遮挡。
利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图
好的,以下是一个简单的例子,展示如何利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
data = {'apple': [3, 2, 4, 5], 'orange': [1, 5, 2, 6], 'banana': [2, 3, 1, 4]}
df = pd.DataFrame(data, index=['Jan', 'Feb', 'Mar', 'Apr'])
# 创建子图
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 绘制柱状图
df.plot(kind='bar', ax=axs[0])
axs[0].set_title('Fruit sales')
# 绘制折线图
df.plot(kind='line', ax=axs[1])
axs[1].set_title('Fruit sales')
# 绘制饼图
plt.figure(figsize=(5,5))
df.sum().plot(kind='pie', autopct='%1.1f%%')
plt.title('Fruit sales')
# 显示图形
plt.show()
```
在这个例子中,我们创建了一个包含水果销售数据的DataFrame对象,并利用matplotlib的子图功能,在一个Figure对象中绘制了柱状图、折线图和饼图。其中,柱状图和折线图绘制在一个子图中,饼图绘制在另一个子图中。最后,我们调用show()函数显示图形。
需要注意的是,这只是一个简单的例子,实际的数据可能更加复杂,需要更多的数据处理和绘图技巧。但是,这个例子可以作为一个起点,帮助你开始利用matplotlib和pandas绘制组合图。
阅读全文