1. 数据创建。根据下表创建DataFrame数据。 month_number facecream facewash toothpaste bathingsoap shampoo moisturizer total_units total_profit 1 2500 1500 5200 9200 1200 1500 21100 211000 2 2630 1200 5100 6100 2100 1200 18330 183300 3 2140 1340 4550 9550 3550 1340 22470 224700 4 3400 1130 5870 8870 1870 1130 22270 222700 5 3600 1740 4560 7760 1560 1740 20960 209600 6 2760 1555 4890 7490 1890 1555 20140 201400 7 2980 1120 4780 8980 1780 1120 29550 295500 8 3700 1400 5860 9960 2860 1400 36140 361400 9 3540 1780 6100 8100 2100 1780 23400 234000 10 1990 1890 8300 10300 2300 1890 26670 266700 11 2340 2100 7300 13300 2400 2100 41280 412800 12 2900 1760 7400 14400 1800 1760 30020 300200 2. 读取所有月份的总利润,并使用折线图显示,连线形式为点划线。 3. 以直方图形式在一个图中显示所有产品总销量数据。 4. 读取每个月的bathingsoap销售数据并使用散点图显示;在图中添加一个网格。网格线样式应为“-”。 5. 计算总销售排名前三的物品数据,并使用饼图显示这三种物品所占百分比(以三种物品总销售良为分母)。
时间: 2024-03-13 07:45:21 浏览: 171
好的,以下是您需要的代码:
1. 数据创建
```python
import pandas as pd
data = {
'month_number': range(1, 13),
'facecream': [2500, 2630, 2140, 3400, 3600, 2760, 2980, 3700, 3540, 1990, 2340, 2900],
'facewash': [1500, 1200, 1340, 1130, 1740, 1555, 1120, 1400, 1780, 1890, 2100, 1760],
'toothpaste': [5200, 5100, 4550, 5870, 4560, 4890, 4780, 5860, 6100, 8300, 7300, 7400],
'bathingsoap': [9200, 6100, 9550, 8870, 7760, 7490, 8980, 9960, 8100, 10300, 13300, 14400],
'shampoo': [1200, 2100, 3550, 1870, 1560, 1890, 1780, 2860, 2100, 2300, 2400, 1800],
'moisturizer': [1500, 1200, 1340, 1130, 1740, 1555, 1120, 1400, 1780, 1890, 2100, 1760]
}
df = pd.DataFrame(data)
df['total_units'] = df.iloc[:, 1:7].sum(axis=1)
df['total_profit'] = df['total_units'] * 10
```
2. 读取所有月份的总利润,并使用折线图显示,连线形式为点划线。
```python
import matplotlib.pyplot as plt
plt.plot(df['month_number'], df['total_profit'], 'o--')
plt.xlabel('Month Number')
plt.ylabel('Total Profit')
plt.title('Total Profit Per Month')
plt.show()
```
3. 以直方图形式在一个图中显示所有产品总销量数据。
```python
total_sales = df.iloc[:, 7:13].sum()
plt.bar(total_sales.index, total_sales.values)
plt.xlabel('Product')
plt.ylabel('Total Sales')
plt.title('Total Sales of All Products')
plt.show()
```
4. 读取每个月的bathingsoap销售数据并使用散点图显示;在图中添加一个网格。网格线样式应为“-”。
```python
plt.scatter(df['month_number'], df['bathingsoap'])
plt.xlabel('Month Number')
plt.ylabel('Bathing Soap Sales')
plt.title('Bathing Soap Sales Per Month')
plt.grid(linestyle='-')
plt.show()
```
5. 计算总销售排名前三的物品数据,并使用饼图显示这三种物品所占百分比(以三种物品总销售为分母)。
```python
top_3 = df.iloc[:, 1:7].sum().nlargest(3)
labels = top_3.index
sizes = top_3.values
explode = (0.1, 0, 0)
plt.pie(sizes, labels=labels, explode=explode, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.title('Top 3 Sales')
plt.show()
```
阅读全文