利用pandas和matplotlib画出柱形图,并在柱形图添加拟合线
时间: 2023-11-27 15:54:58 浏览: 113
下面是一个利用pandas和matplotlib画出柱形图,并在柱形图添加拟合线的例子:
```python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
# 创建数据
df = pd.DataFrame({'x': np.arange(1, 11), 'y': np.array([2, 4, 6, 8, 10, 12, 14, 16, 18, 20])})
# 画出柱形图
plt.bar(df['x'], df['y'])
# 拟合函数
def func(x, a, b):
return a * x + b
# 进行拟合
popt, pcov = curve_fit(func, df['x'], df['y'])
# 添加拟合线
plt.plot(df['x'], func(df['x'], *popt), 'r-', label='fit: y=%5.3f*x+%5.3f' % tuple(popt))
# 添加图例
plt.legend()
# 显示图形
plt.show()
```
解释一下代码:
1. 创建数据:创建一个DataFrame,包含x和y两列数据。
2. 画出柱形图:使用`plt.bar()`函数画出柱形图,数据来源于DataFrame的x和y列。
3. 拟合函数:定义一个一次函数,用于拟合数据。这里我们使用了线性函数$y=ax+b$。
4. 进行拟合:使用`curve_fit()`函数进行拟合,得到拟合系数。
5. 添加拟合线:使用`plt.plot()`函数画出拟合线,数据来源于DataFrame的x列和拟合函数的结果。
6. 添加图例:使用`plt.legend()`函数添加图例。
7. 显示图形:使用`plt.show()`函数显示图形。
这个例子中,我们使用了线性函数进行拟合,实际上可以使用其他函数进行拟合,只需将拟合函数修改为相应的函数即可。
阅读全文