柱状图:
颜色线性渐变,标签旋转
折线图:
背景颜色线性渐变,平滑曲线,修改图元颜色及描边区域填充
日历图:
色谱,日历单元尺寸,日标签控制
#数据及下载链接
和鲸社区-医院药品销售数据
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType,SymbolType
data=pd.read_excel(r'./医院药品销售数据.xlsx')
data.head()
|
购药时间 |
社保卡号 |
商品编码 |
商品名称 |
销售数量 |
应收金额 |
实收金额 |
0 |
2016-01-01 星期五 |
1.616528e+06 |
236701.0 |
强力VC银翘片 |
6.0 |
82.8 |
69.00 |
1 |
2016-01-02 星期六 |
1.616528e+06 |
236701.0 |
清热解毒口服液 |
1.0 |
28.0 |
24.64 |
2 |
2016-01-06 星期三 |
1.260283e+07 |
236701.0 |
感康 |
2.0 |
16.8 |
15.00 |
3 |
2016-01-11 星期一 |
1.007034e+10 |
236701.0 |
三九感冒灵 |
1.0 |
28.0 |
28.00 |
4 |
2016-01-15 星期五 |
1.015543e+08 |
236701.0 |
三九感冒灵 |
8.0 |
224.0 |
208.00 |
data.duplicated().sum()
data.isnull().sum()
data[data.isnull().T.any()]
data.dropna(axis=0,subset=['购药时间'],inplace=True)
data.fillna(value=000,inplace=True)
data.describe(percentiles=(0.01,0.1,0.9,0.99))
data[data['销售数量']<0]
data['销售数量']=data['销售数量'].apply(lambda x:abs(x))
data['应收金额']=data['应收金额'].apply(lambda x:abs(x))
data['实收金额']=data['实收金额'].apply(lambda x:abs(x))
data.describe(percentiles=(0.01,0.1,0.9,0.99))
|
社保卡号 |
商品编码 |
销售数量 |
应收金额 |
实收金额 |
count |
6.576000e+03 |
6.576000e+03 |
6576.000000 |
6576.000000 |
6576.000000 |
mean |
6.091253e+09 |
1.015664e+06 |
2.395681 |
50.760645 |
46.587865 |
std |
4.889286e+09 |
5.128837e+05 |
2.362780 |
87.436153 |
80.826676 |
min |
0.000000e+00 |
2.367010e+05 |
0.000000 |
0.000000 |
0.000000 |
1% |
1.616528e+06 |
2.367010e+05 |
1.000000 |
1.700000 |
1.060000 |
10% |
1.100553e+07 |
8.614050e+05 |
1.000000 |
4.800000 |
3.900000 |
50% |
1.001650e+10 |
8.615070e+05 |
2.000000 |
28.000000 |
26.660000 |
90% |
1.007458e+10 |
2.367010e+06 |
4.000000 |
110.000000 |
96.500000 |
99% |
1.008785e+10 |
2.367011e+06 |
10.000000 |
374.250000 |
359.052500 |
max |
1.283612e+10 |
2.367012e+06 |
50.000000 |
2950.000000 |
2650.000000 |
data['星期几']=data['购药时间'].apply(lambda x:str(x).split(' ')[1])
data['日期']=data['购药时间'].apply(lambda x:str(x).split(' ')[0])
data['日期']=pd.to_datetime(data['日期'])
data['年']=data['日期'].dt.year
data['月']=data['日期'].dt.month
data['日']=data['日期'].dt.day
data.drop(labels='购药时间',axis=1,inplace=True)
data.head()
|
社保卡号 |
商品编码 |
商品名称 |
销售数量 |
应收金额 |
实收金额 |
星期几 |
日期 |
年 |
月 |
日 |
0 |
1.616528e+06 |
236701.0 |
强力VC银翘片 |
6.0 |
82.8 |
69.00 |
星期五 |
2016-01-01 |
2016 |
1 |
1 |
1 |
1.616528e+06 |
236701.0 |
清热解毒口服液 |
1.0 |
28.0 |
24.64 |
星期六 |
2016-01-02 |
2016 |
1 |
2 |
2 |
1.260283e+07 |
236701.0 |
感康 |
2.0 |
16.8 |
15.00 |
星期三 |
2016-01-06 |
2016 |
1 |
6 |
3 |
1.007034e+10 |
236701.0 |
三九感冒灵 |
1.0 |
28.0 |
28.00 |
星期一 |
2016-01-11 |
2016 |
1 |
11 |
4 |
1.015543e+08 |
236701.0 |
三九感冒灵 |
8.0 |
224.0 |
208.00 |
星期五 |
2016-01-15 |
2016 |
1 |
15 |
week_sale=data.groupby('星期几').agg(销量=('销售数量','sum'))
week_sale.reset_index(inplace=True)
week_sale
|
星期几 |
销量 |
0 |
星期一 |
2102.0 |
1 |
星期三 |
2080.0 |
2 |
星期二 |
2332.0 |
3 |
星期五 |
2801.0 |
4 |
星期六 |
2337.0 |
5 |
星期四 |
1988.0 |
6 |
星期日 |
2114.0 |
week_sale_xdata=list(week_sale['星期几'])
week_sale_ydata=list(week_sale['销量'])
item_color={
'type': 'linear',
'x': 0,
'y': 0,
'x2': 0,
'y2': 1,
'colorStops': [
{
'offset': 0, 'color': '#EA4235' },
{
'offset': 1, 'color': '#FFFFFF'}],
'global': False
}
main_color='#000000'
bar2=(
Bar()
.add_xaxis(week_sale_xdata)
.add_yaxis(
'',
week_sale_ydata,
bar_width=25
)
.set_global_opts(
title_opts=opts.TitleOpts(
title='周几与药品销量的关系',
pos_left='center',
pos_top='2%',
title_textstyle_opts=opts.TextStyleOpts(color=main_color,font_size=15,font_weight='bold',font_family='Microsoft YaHei'),
),
xaxis_opts=opts.AxisOpts(
is_show=True,
name_location='end',
name_gap=15,
name_textstyle_opts=opts.TextStyleOpts(color=main_color,font_size=15,font_weight='bold',font_family='Microsoft YaHei'),
axisline_opts=opts.AxisLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(is_show=True,width=2,color=main_color)),
axislabel_opts=opts.LabelOpts(is_show=True,color=main_color,font_size=15,font_weight='bold',font_family='Microsoft YaHei',rotate=-45),
axistick_opts=opts.AxisTickOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(is_show=True,width=2,color=main_color))
),
yaxis_opts=opts.AxisOpts(
type_='value',
is_show=True,
name='销量',
name_location='end',
name_gap=15,
name_textstyle_opts=opts.TextStyleOpts(color=main_color,font_size=15,font_weight='bold',font_family='Microsoft YaHei'),
axisline_opts=opts.AxisLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(is_show=True,width=2,color=main_color)),
axislabel_opts=opts.LabelOpts(is_show=True,color=main_color,font_size