pandas使用3行7列数据绘制误差图,横坐标为[10, 20, 40, 50, 100, 125, 200]
时间: 2023-02-09 19:31:40 浏览: 101
可以使用pandas中的DataFrame来存储数据,然后使用DataFrame.plot()方法绘制误差图。代码类似这样:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建3行7列数据
data = {'X': [10, 20, 40, 50, 100, 125, 200],
'Y1': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7],
'Y2': [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4],
'Y3': [0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1]}
df = pd.DataFrame(data)
# 绘制误差图
df.plot(x='X', y=['Y1', 'Y2', 'Y3'], kind='bar')
# 显示图像
plt.show()
```
这里绘制了一个包含3组Y值的误差图,横坐标为X。
相关问题
pandas读取4个n行7列的csv数据,分别绘制4幅误差图,横坐标为[10, 20, 40, 50, 100, 125, 200]
可以使用pandas读取csv数据,然后使用matplotlib绘制误差图。示例代码如下:
``` python
import pandas as pd
import matplotlib.pyplot as plt
# 读取csv数据
df = pd.read_csv("your_data.csv")
# 获取数据中的横坐标
x = [10, 20, 40, 50, 100, 125, 200]
# 绘制4幅误差图
for i in range(4):
y = df.iloc[i]
plt.errorbar(x, y)
plt.show()
```
这段代码会读取你的csv文件,然后绘制出横坐标为[10, 20, 40, 50, 100, 125, 200]的4幅误差图。
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn import linear_model, metrics plt.rcParams['font.sans-serif'] = 'SimHei' sheet = pd.read_excel(".//人均消费金额与人均国民收入.xls", 'sheet1') print(sheet.values) x_data = sheet.values[:, 1] y_data = sheet.values[:, 2] X_data = x_data[:, np.newaxis] Y_data = y_data[:, np.newaxis] LR = linear_model.LinearRegression() LR.fit(X_data, Y_data) # 进行训练 w = LR.coef_ # 获得回归系数权重向量 b = LR.intercept_ # 获得截距 y_fit = np.dot(X_data, w) + b # 数据拟合:等同LR.predict(x_data) MSE = metrics.mean_squared_error(Y_data, y_fit) # ------(3)评估指标:均方误差 ------------------- R2 = metrics.r2_score(Y_data, y_fit) # 评估指标:R2(决定系数分数) plt.figure(figsize=(8, 5)) plt.title('人均国民收入与人均消费金额 (R2=' + str(round(R2, 4)) + ")") plt.xlabel('人均国民收入 x (元)', fontsize=15) plt.ylabel('人均消费金额 y (元)', fontsize=15) plt.scatter(x_data, y_data, color='r', marker='o') plt.scatter(x_data, y_fit, color='b', marker='s') plt.plot(x_data, y_fit, color='g', linestyle='-') d = '回归方程 = ' + str(round(w[0, 0], 4)) + ' * x + ' + str(round(b[0], 2)) plt.legend([d, '红色:散点图', '蓝色:拟合点']) plt.show()
这段代码实现了利用线性回归模型拟合“人均国民收入”与“人均消费金额”之间的关系,并进行可视化展示。具体来说,代码的执行过程如下:
1. 读取名为“人均消费金额与人均国民收入.xls”、工作表名为“sheet1”的 Excel 文件,并将其转换成 Pandas DataFrame 格式的数据。
2. 从 DataFrame 中提取出“人均国民收入”和“人均消费金额”两列数据,并将其分别存储在 x_data 和 y_data 数组中。
3. 将 x_data 和 y_data 数组转换为二维数组 X_data 和 Y_data,其中 X_data 和 Y_data 分别对应于自变量和因变量。
4. 创建 LinearRegression 类的实例 LR,并使用 fit() 方法对 X_data 和 Y_data 进行线性回归模型的训练。
5. 获取回归系数权重向量 w 和截距 b。
6. 通过 np.dot() 函数将 X_data 和 w 相乘,并加上 b,得到拟合后的 y 值 y_fit。
7. 使用 mean_squared_error() 函数计算均方误差 MSE,并使用 r2_score() 函数计算决定系数分数 R2。
8. 使用 matplotlib 库创建画布,并添加标题、横坐标、纵坐标等信息。同时,使用 scatter() 函数绘制散点图,并使用 plot() 函数绘制拟合曲线。
9. 使用 legend() 函数添加图例,其中包括回归方程、散点图和拟合点。
10. 使用 show() 函数展示可视化结果。
阅读全文