1. 程式人生 > >python的pyecharts圖表庫學習(二)

python的pyecharts圖表庫學習(二)

 

下面讓我們繼續學習這個pyecharts圖表庫

一:pyecharts-snapshot外掛

如果想直接將圖片儲存為 png, pdf, gif 格式的檔案,可以使用該外掛。但先要安裝Nodeis環境。

Nodies地址:Nodejs 

在cmd命令列中依下面的方法安裝環境:

  1. 安裝 phantomjs   npm install -g phantomjs-prebuilt
  2. 安裝 pyecharts-snapshot   pip install pyecharts-snapshot
  3. 呼叫 render 方法  bar.render(path='snapshot.png')
     檔案結尾可以為 svg/jpeg/png/pdf/gif。請注意,svg 檔案需要你在初始化 bar 的時候設定 renderer='svg'。

二:繪製圖形

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補充。

現在我們建立一個柱形圖表: