某淘宝网店共有 10 款商品(商品名称自定义),模拟生成该网店 2019 年的营业额数据,并将数据保存到磁盘文件 data. csv。 使用pandas 读取文件 data.csr 中的数据,使用 matplot1ib 绘制出每一款商品的销售额折线图。 按月份进行统计各商品的营业额,并绘制柱状图。 按季度统计各商品的营业额,并绘制饼状图。
时间: 2024-03-03 13:49:30 浏览: 84
好的,我已经了解您的问题。以下是解决方案:
首先,生成数据并保存到 data.csv 文件中。为了简单起见,我们假设每个商品的销售额是随机生成的。
```python
import random
import csv
# 生成数据
products = ['Product1', 'Product2', 'Product3', 'Product4', 'Product5', 'Product6', 'Product7', 'Product8', 'Product9', 'Product10']
header = ['Month'] + products
data = []
for month in range(1, 13):
row = [f'2019-{month:02}']
for _ in range(len(products)):
row.append(random.randint(10000, 100000))
data.append(row)
# 保存到文件
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(header)
writer.writerows(data)
```
接下来,使用 pandas 读取数据,并绘制每个商品的销售额折线图。
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('data.csv')
# 绘制每个商品的销售额折线图
for product in products:
plt.plot(df['Month'], df[product], label=product)
plt.xlabel('Month')
plt.ylabel('Sales')
plt.legend()
plt.show()
```
然后,按月份统计各商品的营业额,并绘制柱状图。
```python
# 按月份统计各商品的营业额
df_month = df.groupby('Month').sum()
# 绘制柱状图
df_month.plot(kind='bar')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()
```
最后,按季度统计各商品的营业额,并绘制饼状图。
```python
# 按季度统计各商品的营业额
df_quarter = df.groupby(pd.PeriodIndex(df['Month'], freq='Q')).sum()
# 绘制饼状图
for product in products:
plt.figure()
plt.pie(df_quarter[product], labels=df_quarter.index, autopct='%1.1f%%')
plt.title(product)
plt.show()
```
这样,我们就完成了您提出的问题。
阅读全文