python读入数据并画图
时间: 2025-05-30 18:07:33 浏览: 100
### 使用Python读取Excel数据并绘制图表
要完成从Excel文件中读取数据并将其用于数据可视化的任务,可以按照以下方法操作。以下是完整的流程以及代码示例。
#### 数据准备与库导入
为了实现这一目标,通常会使用 `pandas` 库来处理 Excel 文件中的数据,并利用诸如 `matplotlib` 或者更高级的可视化工具如 `pyecharts` 来创建图形化展示。首先需要安装必要的依赖项:
```bash
pip install pandas matplotlib openpyxl pyecharts
```
这些库的作用如下:
- **Pandas**: 提供强大的数据结构和分析功能。
- **Matplotlib**: 常见的数据可视化库,适合基础图表需求。
- **Pyecharts**: 更现代化、交互性强的可视化解决方案。
#### 示例代码:基于 Pandas 和 Matplotlib 的简单折线图
下面是一个具体的例子,演示如何加载 Excel 中的数据并通过 Python 绘制基本折线图。
```python
import pandas as pd
import matplotlib.pyplot as plt
# 加载Excel文档到DataFrame对象中
file_path = 'example_data.xlsx' # 替换为实际路径
sheet_name = 'Sheet1' # 如果有多个表单,请指定名称或者索引号
data_frame = pd.read_excel(file_path, sheet_name=sheet_name)
# 显示前几行确认数据已成功加载
print(data_frame.head())
# 假设我们有一列时间戳作为X轴,另一列为Y轴数值
x_values = data_frame['日期'] # 修改为你自己的字段名
y_values = data_frame['销量']
plt.figure(figsize=(10, 6)) # 设置画布大小
plt.plot(x_values, y_values, label='销售趋势', marker='o')
# 添加标题和标签
plt.title('每日产品销量变化')
plt.xlabel('日期')
plt.ylabel('销量 (单位)')
plt.legend()
# 展示图像
plt.grid(True) # 可选网格增强可读性
plt.show()
```
此脚本执行后将会弹出窗口显示所生成的时间序列折线图[^1]。
#### 利用 Pyecharts 创建更加美观的图表
如果追求更高层次的表现形式,则推荐尝试 `pyecharts` 这样的第三方扩展包。这里给出一段构建柱形统计图的例子:
```python
from pyecharts.charts import Bar
from pyecharts import options as opts
categories = ['周一','周二','周三','周四','周五']
sales_numbers = [8,7,9,5,10]
bar_chart = (
Bar(init_opts=opts.InitOpts(width="600px", height="400px"))
.add_xaxis(categories)
.add_yaxis("周销售额对比", sales_numbers)
.set_global_opts(
title_opts=opts.TitleOpts(title="每周业绩概览"),
toolbox_opts=opts.ToolboxOpts(),
visualmap_opts=opts.VisualMapOpts(max_=max(sales_numbers))
)
)
# 将结果保存成HTML网页文件便于分享或嵌入其他应用界面里头去
output_file = './weekly_sales_bar.html'
bar_chart.render(output_file)
```
上述程序片段定义了一个条形图实例变量 `bar_chart` ,它接受两个参数列表分别代表分类维度(这里是星期几)及其对应量级指标值数组;最后调用了 `.render()` 方法导出了静态 HTML 文档以便于在线浏览[^3]。
#### 总结说明
通过以上介绍可以看出,在 Python 生态圈内存在着多种途径达成同样的目的——即把存储在电子表格里的原始资料转换成为直观易懂的形式呈现出来给观众看。无论是偏向传统风格还是现代互动体验的设计思路都能找到合适的工具支持开发者快速上手实践起来[^2]。
阅读全文
相关推荐

















