2021-04-29 Python绘制柱状图之可视化神器Pyecharts
Python繪制柱狀圖之可視化神器Pyecharts
昨晚寫了關于Matplotlib的可視化,今天推薦一個可視化的利器-pyecharts。
前文鏈接:Python可視化圖表生成-Matplotlib
安裝
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyechartspyecharts介紹
pyecharts是python與echarts鏈接,一個用于生成Echarts圖標的第三方庫,pyecharts分為v0.5.X和v1兩個大版本,兩者互不兼容,v1是一個全新的版本,經研發團隊決定,前者將不再進行更新維護。
?
特性
-
簡潔的 API 設計,使用如絲滑般流暢,支持鏈式調用
-
囊括了 30+ 種常見圖表,應有盡有
-
支持主流 Notebook 環境,Jupyter Notebook 和 JupyterLab
-
可輕松集成至 Flask,Django 等主流 Web 框架
-
高度靈活的配置項,可輕松搭配出精美的圖表
-
詳細的文檔和示例,幫助開發者更快的上手項目
-
多達 400+ 地圖文件以及原生的百度地圖,為地理數據可視化提供強有力的支持
優勢
pyecharts可以輸出網頁版的鏈接,直接調用資源渲染圖表,方便快捷,輸出不是圖片,而是一個可以調節的頁面,動態,炫酷,都是它的天地!它可以支持在手機端瀏覽界面,也可以修改相關參數,總的來說方便至極,而且主題都可以隨意搭配,顏色自己調。適用于公司可視化報表,企業展示,日常辦公,由于圖表過于炫酷,不大適合做科研論文展示,matplotlib是科研論文的首選。
?
柱狀圖模板系列
1、水晶柱狀圖
?水晶柱狀圖適用于幾個數據的對比,生成的柱狀圖具有一種玲瓏剔透,清水出芙蓉的美感和清新,最適合做可視化展示。
from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.commons.utils import JsCode data_x = ['可樂', '雪碧', '橙汁', '綠茶', '奶茶', '百威', '青島']data_y = [47, 53, 27, 23, 94, 18, 48]c = ( Bar() .add_xaxis(data_x) .add_yaxis("商家A", data_y, category_gap="60%") .set_series_opts( itemstyle_opts={ "normal": { "color": JsCode( """new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: 'rgba(0, 244, 255, 1)' }, { offset: 1, color: 'rgba(0, 77, 167, 1)' }], false)""" ), "barBorderRadius": [30, 30, 30, 30], "shadowColor": "rgb(0, 160, 221)", } } ) .set_global_opts(title_opts=opts.TitleOpts(title="銷量"), xaxis_opts=opts.AxisOpts( name='類別', name_location='middle', name_gap=30, # 標簽與軸線之間的距離,默認為20,最好不要設置20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標簽字體大小 )), yaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # font_weight='bolder', )), # toolbox_opts=opts.ToolboxOpts() # 工具選項 ) .render("水晶柱狀圖.html"))X軸標簽過長的柱狀圖
?有時候我們在繪制柱狀圖的時候,X軸標簽過長導致圖形顯示的不正常,修改字數之后又怕展示效果不夠明顯。此圖例解決了這個難題,適合展示X軸標簽過長的問題。
from pyecharts import options as optsfrom pyecharts.charts import Bar c = ( Bar() .add_xaxis( [ "名字很長的X軸標簽1", "名字很長的X軸標簽2", "名字很長的X軸標簽3", "名字很長的X軸標簽4", "名字很長的X軸標簽5", "名字很長的X軸標簽6", ] ) .add_yaxis("商家A", [10, 20, 30, 40, 50, 40]) .add_yaxis("商家B", [20, 10, 40, 30, 40, 50]) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15),), yaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman',????????????????font_size=16 )), title_opts=opts.TitleOpts(title="標題1", subtitle="標題2"), # toolbox_opts=opts.ToolboxOpts() # 工具選項 ) .render("解決X軸標簽過長問題.html"))?
翻轉X Y軸柱狀圖
直觀的展示柱狀圖過于單調,有時候我們需要適當的調整一下這個主題,把xy軸翻轉一下,這樣更能直觀的對比顯示,適用多個數據類別進行比較。
from pyecharts import options as optsfrom pyecharts.charts import Bardata_x = ['可樂', '雪碧', '橙汁', '綠茶', '奶茶', '百威', '青島']data_y = [47, 53, 27, 123, 94, 18, 48]c = ( Bar() .add_xaxis(data_x) .add_yaxis("商家A", data_y) .add_yaxis("商家B", data_y) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="標題"), xaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, # 標簽與軸線之間的距離,默認為20,最好不要設置20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標簽字體大小 )), yaxis_opts=opts.AxisOpts( name='類別', name_location='middle', name_gap=40, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # font_weight='bolder', )), ) .render("翻轉XY軸.html"))?
可移動的X、Y軸柱狀圖(適合數據類別過多)
可以移動的X軸,我們可以通過鼠標的控制展示我們想要展示的X軸的維度,這個用于數據類別過多,一般的可視化無法展示的情況,比如展示一個的銷售額,我們可以用這個,顯示30個數據類別。
from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.globals import ThemeType data_x = ['0天', '1天', '2天', '3天', '4天', '5天', '6天', '7天', '8天', '9天', '10天', '11天', '12天', '13天', '14天', '15天', '16天', '17天', '18天', '19天', '20天', '21天', '22天', '23天', '24天', '25天', '26天', '27天', '28天', '29天'] data_y = [5, 27, 27, 7, 13, 5, 1, 2, 29, 20, 21, 28, 5, 22, 23, 4, 20, 26, 25, 1, 3, 14, 23, 11, 4, 8, 2, 22, 13, 22]c = ( Bar({"theme": ThemeType.MACARONS}) .add_xaxis(data_x) .add_yaxis("商家A", data_y) .set_global_opts( title_opts=opts.TitleOpts(title="標題"), datazoom_opts=opts.DataZoomOpts(),????????#?datazoom_opts=opts.DataZoomOpts(orient="vertical"),?#?如果是Y軸就用這行 ) .render("變動X軸柱狀圖.html"))X軸可移動
Y軸可移動
更多內容參考:
https://gallery.pyecharts.org/#/README
總結
以上是生活随笔為你收集整理的2021-04-29 Python绘制柱状图之可视化神器Pyecharts的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-04-28 Python可视化
- 下一篇: 2021-05-07 matlab中的a