python的pyecharts圖表庫學習(二)
下面讓我們繼續學習這個pyecharts圖表庫
一:pyecharts-snapshot外掛
如果想直接將圖片儲存為 png, pdf, gif 格式的檔案,可以使用該外掛。但先要安裝Nodeis環境。
Nodies地址:Nodejs
在cmd命令列中依下面的方法安裝環境:
- 安裝 phantomjs
npm install -g phantomjs-prebuilt
- 安裝 pyecharts-snapshot
pip install pyecharts-snapshot
- 呼叫
render
方法bar.render(path='snapshot.png')
二:繪製圖形
1.下面是基本的pyecharts圖表構建和渲染的方法
例項一個具體型別圖表的物件 | chart = FooChart() |
為圖表新增通用的配置,如主題 | chart.use_theme() |
為圖表新增特定的配置 | geo.add_coordinate() |
新增資料及配置項 | chart.add() |
生成本地檔案(html/svg/jpeg/png/pdf/gif) | chart.render() |
2.多次顯示圖表
最新版本的pyecharts可以使用以下方式顯示多個圖表:
from pyecharts import Bar, Line from pyecharts.engine import create_default_environment bar = Bar("我的第一個圖表", "這裡是副標題") bar.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90]) line = Line("我的第一個圖表", "這裡是副標題") line.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90]) env = create_default_environment("html") # 為渲染建立一個預設配置環境 # create_default_environment(filet_ype) # file_type: 'html', 'svg', 'png', 'jpeg', 'gif' or 'pdf' env.render_chart_to_file(bar, path='bar.html') env.render_chart_to_file(line, path='line.html')
該程式碼,減少了部分重複操作,速度有所提高。
3.配置項這裡先不講,先在讓我們建立一張柱狀圖(條形圖)和一張餅狀圖:
柱狀圖
(1) Bar(條形圖)
注:通過柱形的高度/條形的寬度來表現資料的大小。
(2) bar.add()方法
a:方法簽名:
add(name, x_axis, y_axis,
is_stack=False,
bar_category_gap='20%', **kwargs)
方法作用
- name -> str 圖例名稱
- x_axis -> list x 座標軸資料
- y_axis -> list y 座標軸資料
- is_stack -> bool 資料堆疊,同個類目軸上系列配置相同的 stack 值可以堆疊放置
- bar_category_gap -> int/str 類目軸的柱狀距離,當設定為 0 時柱狀是緊挨著(直方圖型別),預設為 '20%'
注:全域性配置項要在最後一個 add()
上設定,否側設定會被沖刷掉。
b.使用標記點和標記線
mark_point=["average"]和mark_line=["min", "max"]函式即可設定標記點和標記線
c.is_convert屬性
該屬性設定為True後is_convert=True即可交換x軸和y軸
d.dataZoom效果
dataZoom 元件用於區域縮放,達到能自由關注細節的資料資訊,或者概覽資料整體,或者去除離群點的影響。
'slider' 型別
有單獨的滑動條,使用者在滑動條上進行縮放或漫遊。
加入is_label_show=True, is_datazoom_show=True即可。
'inside' 型別
內置於座標系中,使使用者可以在座標系上通過滑鼠拖拽、滑鼠滾輪、手指滑動(觸屏上)來縮放或漫遊座標系。
加入
is_datazoom_show=True,
datazoom_type="inside",
datazoom_range=[10, 25],
即可
'both' 型別
加入
is_datazoom_show=True,
datazoom_type="both",
datazoom_range=[10, 25],
即可
多 dataZoom 效果,效果同時支援 X、Y 軸
加入
# 預設為 X 軸,橫向
is_datazoom_show=True,
datazoom_type="slider",
datazoom_range=[10, 25],
# 新增額外的 dataZoom 控制條,縱向
is_datazoom_extra_show=True,
datazoom_extra_type="slider",
datazoom_extra_range=[10, 25],
is_toolbox_show=False,
即可
注: datazoom 適合所有平面直角座標系圖形,也就是(Line、Bar、Scatter、EffectScatter、Kline)。
e.當 x 軸或者 y 軸的標籤因為過於密集而導致全部顯示出來會重疊的話,可採用使標籤旋轉的方法
加入xaxis_interval=0, xaxis_rotate=30, yaxis_rotate=30即可
注: 可通過設定 xaxis_min/xaxis_max/yaxis_min/yaxis_max 來調整 x 軸和 y 軸上的最大最小值。針對數值軸有效!。
可以通過 label_color 來設定柱狀的顏色,如 ['#eee', '#000'],所有的圖表型別的圖例顏色都可通過 label_color 來修改。
(3) 瀑布圖和直方圖這裡就不介紹了,具體大家可以參看百度的pyecharts介紹
(4) Bar屬性設定
a.通過在Bar中設定extra_html_text_label=["bar_extra_html_text_label", "color:red"])即可得到額外的文字標籤。
b.通過在Bar中設定xaxis_line_color="green", xaxis_line_width=5, xaxis_label_textcolor="black",或yaxis_line_color="green", yaxis_line_width=5, yaxis_label_textcolor="black",可以控制X/Y軸座標軸顏色以及寬度。
(5) 進行兩次add的時候,有一次的某項資料丟失,可以用0補充。
現在我們建立一個柱形圖表:
、