pyecharts柱状图,折现图,日历图

本文详细介绍了如何使用pyecharts库创建柱状图、折线图和日历图。在柱状图中,实现了颜色线性渐变和标签旋转;折线图中,展示了背景颜色线性渐变、平滑曲线以及自定义图元颜色和描边区域填充;日历图则涵盖了色谱设置、日历单元尺寸调整和日标签的控制。数据来源于和鲸社区的医院药品销售数据。
摘要由CSDN通过智能技术生成

柱状图:
颜色线性渐变,标签旋转
折线图:
背景颜色线性渐变,平滑曲线,修改图元颜色及描边区域填充
日历图:
色谱,日历单元尺寸,日标签控制

#数据及下载链接
和鲸社区-医院药品销售数据

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()]
#删除购药时间为空值的行,填充社保卡号为000的行
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  # 缺省为 false
}
main_color='#000000'

bar2=(
    Bar()
    .add_xaxis(week_sale_xdata)
    .add_yaxis(
        '',
        week_sale_ydata,
        bar_width=25
    )
    #.reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='周几与药品销量的关系',
            #subtitle='12月份只统计到12月14日',
            pos_left='center',
            pos_top='2%',
            title_textstyle_opts=opts.TextStyleOpts(color=main_color,font_size=15,font_weight='bold',font_family='Microsoft YaHei'),
            #subtitle_textstyle_opts=opts.TextStyleOpts(color='#FFFFFF',font_size=15,font_weight='bold',font_family='Microsoft YaHei'),
        ),
        xaxis_opts=opts.AxisOpts(
            #type_='value',
            is_show=True,
            #name='周几',
            name_location='end',
            name_gap=15,
            #position='15%',
            #offset=-80,
            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,
            #position='15%',
            #offset=-80,
            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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值