本文将深入探讨如何使用Python来读取xlsx文件中的数据并生成图表,特别关注于饼图和散点图的创建。我们将使用`openpyxl`库来读取Excel文件,`numpy`和`matplotlib.pyplot`库来处理数据并绘制图形。 我们导入所需的库: ```python import openpyxl import numpy as np import math import matplotlib.pyplot as plt ``` 接下来,我们加载Excel文件并获取数据: ```python wk = openpyxl.load_workbook('信息11.xlsx') sheet = wk.active rows = sheet.max_row cols = sheet.max_column lst1 = [] lst2 = [] for i in range(1, rows + 1): size1 = sheet.cell(i, 1).value lst1.append(size1) size2 = sheet.cell(i, 2).value lst2.append(size2) ``` 这里,我们遍历Excel文件的每一行,提取第一列和第二列的数据,并分别存储在`lst1`和`lst2`列表中。 然后,我们将数据转换为字典形式,并计算百分比: ```python num = 0 dic_size = {} for item in lst1: dic_size[lst1[num]] = lst2[num] num += 1 lst_total = [[item[0], item[1]] for item in dic_size.items()] labels = [item[0] for item in lst_total] fraces = [item[1] for item in lst_total] ``` 现在我们有了饼图的标签(`labels`)和数据(`fraces`)。我们使用`matplotlib.pyplot`库绘制饼图、散点图和柱状图: ```python plt.rcParams['font.family'] = ['SimHei'] # 解决中文乱码问题 plt.scatter(labels, fraces) plt.plot(labels, fraces, color='green') plt.bar(labels, fraces, width=5, color='red') ``` 为了绘制拟合曲线,我们使用`numpy`的`polyfit`函数来计算二次多项式系数,然后用`poly1d`函数创建一个多项式对象: ```python z1 = np.polyfit(labels, fraces, 2) p1 = np.poly1d(z1) x = np.linspace(0, 500, 50) y = -0.00024 * (x ** 2) + 0.1013 * (x) + 10.23 plt.plot(x, y, color='purple') ``` 我们还可以计算预测值与实际值之间的误差,例如均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE),以及R平方的值: ```python yre = [] for item in labels: y = -0.00024 * (item ** 2) + 0.1013 * (item) + 10.23 yre.append(round(y, 6)) a = 0 mse = 0 mae = 0 result = [] for i in range(0, 10): a += round(fraces[i] - yre[i], 6) mae += round(math.fabs(fraces[i] - yre[i]), 6) result.append(round(fraces[i] - yre[i] - round(a / 10, 6), 6)) mse += round((fraces[i] - yre[i] - round(a / 10, 6)) * (fraces[i] - yre[i] - round(a / 10, 6)), 6) print(result) print('均值', round(a / 10, 6)) print('均方误差', round(mse / 10, 6)) rmse = math.sqrt(round(mse / 10, 6)) print('均方根误差', round(rmse, 6)) print('平均绝对误差', round(mae / 10, 6)) print('R平方的数值', 1 - ((round(a / 10, 6)) * (round(a / 10, 6))) / round(mse / 10, 6)) print(p1) ``` 这段代码计算了预测值与实际值的差值,并输出了相关的误差指标。 通过调用`plt.show()`可以显示所绘制的图表。不过在给定的代码中,`plt.show()`被注释掉了。 总结起来,这个实例展示了如何使用Python的`openpyxl`库读取Excel数据,`numpy`进行数据处理,以及`matplotlib.pyplot`库创建各种图表,包括饼图、散点图、柱状图和拟合曲线。同时,它还演示了如何评估预测模型的性能,计算误差指标,这对于数据分析和机器学习任务是非常有用的。通过学习和实践这样的例子,你可以更熟练地在Python中处理和可视化数据。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 4
- 资源: 953
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)