手把手教你用 pyecharts 制作日歷圖
日歷圖,是指按照日歷的布局,用顏色展現(xiàn)每一天的數(shù)據(jù),從而比較直觀地看到全年的數(shù)據(jù)情況。
比如說(shuō),下面是一家超市每天銷售額數(shù)據(jù)的日歷圖,從中可以看出,一月份和二月份的銷售相對(duì)較低,星期三的銷售較好,大多數(shù)星期五都沒(méi)有銷售。
因?yàn)檫@些數(shù)據(jù)是虛擬的,所以這里不展開(kāi)分析討論。
在實(shí)際工作中,我們應(yīng)該對(duì)業(yè)務(wù)情況比較熟悉,借助圖表等方式,充分挖掘數(shù)據(jù)背后有價(jià)值的信息,并提出有針對(duì)性的建議。
下面手把手教你用 pyecharts 來(lái)制作日歷圖,請(qǐng)在 Jupyter Lab 中新建一個(gè) Notebook,然后運(yùn)行以下代碼,其中包含比較詳細(xì)的注釋:
# 導(dǎo)入相關(guān)庫(kù)import pandas as pdfrom pyecharts import options as optsfrom pyecharts.charts import Calendar# 數(shù)據(jù)獲取方法,在林驥的公眾號(hào)后臺(tái)回復(fù):超市df = pd.read_excel('./data/超市數(shù)據(jù).xlsx')# 匯總每天銷售額daily_sale = df.fillna(0).pivot_table(values='銷售額', index='訂單日期', aggfunc=sum).fillna(0)# 把數(shù)據(jù)框轉(zhuǎn)變成列表,以便下面繪圖時(shí)直接調(diào)用data = [[str(x)[:10], round(y/10000,1)] for (x, y) in zip(daily_sale.index, daily_sale.銷售額)]# 繪制日歷圖c = (# 設(shè)置背景、大小和網(wǎng)頁(yè)標(biāo)題Calendar(init_opts=opts.InitOpts(bg_color='#00589F', width='360px', height='800px', page_title="2019年每天銷售額")).add(# 系列名稱"銷售額",# 列表格式的數(shù)據(jù)data,# 日歷組件配置項(xiàng)calendar_opts=opts.CalendarOpts(# 年份range_="2019",# 年月日的格式和字體顏色daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn", label_color='#FFFFFF'),monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn", label_color='#FFFFFF'),yearlabel_opts=opts.CalendarYearLabelOpts(label_color='#FFFFFF'),# 日歷的位置pos_top='110px',pos_left='80px',pos_right='80px',pos_bottom='60px',# 日歷的方向orient='vertical'),# 提示框顯示的數(shù)字格式tooltip_opts=opts.TooltipOpts(formatter='{a}
{c}')).set_global_opts(# 標(biāo)題的大小、顏色和位置title_opts=opts.TitleOpts(title='日均銷售額'+'%.1f萬(wàn)元' % (daily_sale.銷售額.mean()/10000),title_textstyle_opts=opts.TextStyleOpts(font_size=26, color='#FFFFFF'),pos_left='center', pos_top='10px'),# 隱藏圖例legend_opts=opts.LegendOpts(is_show=False),# 顯示工具箱及其位置toolbox_opts=opts.ToolboxOpts(pos_bottom="30px",),# 視覺(jué)映射的配置visualmap_opts=opts.VisualMapOpts(max_=7,min_=0,orient="horizontal",is_piecewise=True,pos_bottom="30px",pos_left="center",textstyle_opts=opts.TextStyleOpts(color="#FFFFFF"),# 按區(qū)間定義好中差,并設(shè)置相應(yīng)的顏色pieces=[{"min": 0, "max": 1, "label": '差', 'color': '#CCCCCC'},{"min": 1, "max": 3, "label": '中', 'color': '#999999'},{"min": 3, "max": 8, "label": '好', 'color': '#5D9BCF'},],),)# 輸出網(wǎng)頁(yè)文件.render("2019年每天銷售額.html"))
運(yùn)行結(jié)束之后,系統(tǒng)會(huì)自動(dòng)生成一個(gè)文件:2019年每天銷售額.html,用瀏覽器打開(kāi)它,就能看到一個(gè)日歷圖。
如果把鼠標(biāo)放在相應(yīng)的單元格上方,就會(huì)顯示對(duì)應(yīng)日期的銷售額數(shù)據(jù),既能觀察全貌,又能查看數(shù)據(jù)明細(xì),這是用 pyecharts 制作圖表的優(yōu)勢(shì)。
雖然工具各有優(yōu)劣,但是關(guān)鍵要知道目標(biāo)是什么,否則就算圖表做得再好看,鍛煉出來(lái)的也不過(guò)是工具操作能力。
最后,建議你結(jié)合自身的實(shí)際情況,學(xué)習(xí)對(duì)自己工作有幫助的技能,并靈活加以運(yùn)用,充分發(fā)揮不同工具的優(yōu)勢(shì),從而創(chuàng)造更大的價(jià)值。
*作者簡(jiǎn)介:林驥,專注數(shù)據(jù)分析 10 多年,堅(jiān)持用心做原創(chuàng)。

手把手教你用 pyecharts 制作數(shù)據(jù)可視化大屏之超市數(shù)據(jù)管理駕駛艙

