用Python绘制销售数据走势图和药品占比图
时间: 2024-01-24 18:19:31 浏览: 129
好的,这里给您提供两种绘制图表的方法。
## 绘制销售数据走势图
首先,我们需要准备好一些销售数据。假设我们有以下数据:
```python
sales = [
{"date": "2021-01-01", "value": 100},
{"date": "2021-02-01", "value": 150},
{"date": "2021-03-01", "value": 200},
{"date": "2021-04-01", "value": 180},
{"date": "2021-05-01", "value": 220},
{"date": "2021-06-01", "value": 250},
]
```
其中,每个元素表示一个销售数据点,包括日期和销售额。
### 方法一:使用Matplotlib绘制
使用Matplotlib可以绘制各种类型的图表,包括走势图。下面是使用Matplotlib绘制销售数据走势图的示例代码:
```python
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
# 准备数据
dates = [datetime.strptime(s["date"], "%Y-%m-%d") for s in sales]
values = [s["value"] for s in sales]
# 绘制图表
fig, ax = plt.subplots()
ax.plot(dates, values)
# 设置x轴格式
ax.xaxis.set_major_formatter(mdates.DateFormatter("%m-%d"))
# 显示图表
plt.show()
```
其中,`matplotlib.dates` 模块用于处理日期格式的数据,`datetime.strptime` 函数用于将字符串转换为日期对象。我们将日期和销售额分别存储在两个列表中,然后使用 `ax.plot` 函数绘制走势图。
运行代码后,会弹出一个窗口显示图表。如下图所示:
![销售数据走势图](https://img-blog.csdnimg.cn/20220121001420528.png)
### 方法二:使用Plotly绘制
除了Matplotlib,还可以使用Plotly绘制走势图。Plotly是一个基于JavaScript的数据可视化库,可以生成交互式图表。下面是使用Plotly绘制销售数据走势图的示例代码:
```python
import plotly.graph_objs as go
from plotly.subplots import make_subplots
# 准备数据
dates = [s["date"] for s in sales]
values = [s["value"] for s in sales]
# 创建子图
fig = make_subplots(specs=[[{"secondary_y": True}]])
# 添加主图
fig.add_trace(go.Scatter(x=dates, y=values, name="销售额"), secondary_y=False)
# 设置x轴格式
fig.update_xaxes(tickangle=45, tickformat="%Y-%m-%d")
# 设置y轴标签
fig.update_yaxes(title_text="销售额", secondary_y=False)
# 显示图表
fig.show()
```
其中,`plotly.graph_objs` 模块用于创建图表对象,`plotly.subplots` 模块用于创建子图。我们将日期和销售额分别存储在两个列表中,然后使用 `go.Scatter` 函数绘制走势图。
运行代码后,会在Jupyter Notebook或浏览器中显示交互式图表。如下图所示:
![销售数据走势图](https://img-blog.csdnimg.cn/20220121001447988.png)
## 绘制药品占比图
接下来,我们来绘制药品占比图。假设我们有以下数据:
```python
drugs = [
{"name": "阿司匹林", "value": 200},
{"name": "头孢", "value": 150},
{"name": "板蓝根", "value": 100},
{"name": "氯雷他定", "value": 80},
{"name": "其他", "value": 70},
]
```
其中,每个元素表示一个药品,包括名称和销售额。
### 方法一:使用Matplotlib绘制
使用Matplotlib可以绘制各种类型的图表,包括饼图。下面是使用Matplotlib绘制药品占比图的示例代码:
```python
import matplotlib.pyplot as plt
# 准备数据
labels = [d["name"] for d in drugs]
values = [d["value"] for d in drugs]
# 绘制图表
fig, ax = plt.subplots()
ax.pie(values, labels=labels, autopct="%1.1f%%")
# 显示图表
plt.show()
```
我们将药品名称和销售额分别存储在两个列表中,然后使用 `ax.pie` 函数绘制饼图。其中,`autopct` 参数用于控制百分比的显示格式。
运行代码后,会弹出一个窗口显示图表。如下图所示:
![药品占比图](https://img-blog.csdnimg.cn/20220121001506358.png)
### 方法二:使用Plotly绘制
除了Matplotlib,还可以使用Plotly绘制饼图。下面是使用Plotly绘制药品占比图的示例代码:
```python
import plotly.graph_objs as go
# 准备数据
labels = [d["name"] for d in drugs]
values = [d["value"] for d in drugs]
# 创建图表对象
fig = go.Figure(data=[go.Pie(labels=labels, values=values)])
# 显示图表
fig.show()
```
我们将药品名称和销售额分别存储在两个列表中,然后使用 `go.Pie` 函数绘制饼图。
运行代码后,会在Jupyter Notebook或浏览器中显示交互式图表。如下图所示:
![药品占比图](https://img-blog.csdnimg.cn/20220121001529478.png)
阅读全文