安裝 pip install pyecharts
直接使用該命令安裝的版本爲最新版本爲1.5。語法與以前版本大不同,所以本文僅針對1.5及以後版本說明。若想使用以前版本請使用命令pip install pyecharts == 0.1.5.19
注:建議在jupyter notebook中coding,方便debug。html
基本套路就是先建立一個你須要的空圖層,而後使用.set_global_opts
修改全局項再用.set_series_opts
修改具體的相關配置就能夠。固然最好的學習地址必定是官方文檔,可是裏面介紹的太過複雜了,這裏僅以快速上手使用爲目標進行幾個例子來講明套路。json
pyecharts比較好的就是繪製地圖,這裏以2019-nCov項目中安徽省地圖繪製爲例。
數組
首先導入須要的包echarts
from pyecharts.charts import Pie ,Grid,Bar,Line
from pyecharts.faker import Faker #數據包from pyecharts.charts import Map,Geo
from pyecharts import options as opts
from pyecharts.globals import ThemeType
OK,我如今有一個省份的一組數據,大概長這樣
ide
locate =['合肥市', '阜陽市', '亳州市', '安慶市', '馬鞍山市', '銅陵市', '六安市', '滁州市', '池州市','蚌埠市','蕪湖市','宿州市','宣城市','淮北市','淮南市','黃山市']`
data =['115','105','72','66','30','22','41','11','11','88','27','27','5','22','14','9']
這也是接觸到的須要繪製地圖的數據格式,兩個list,一個是地名,一個是每一個城市對應的數據,如今執行如下代碼就能夠獲得安徽省的疫情地圖。函數
list1 = [[locate[i],data[i]] for i in range(len(locate))] #首先建立數據
map_1 = Map(init_opts=opts.InitOpts(width="400px", height="460px")) #建立地圖,其中括號內能夠調整大小,也能夠修改主題顏色。
map_1.add("安徽疫情", list1, maptype="安徽") #添加安徽地圖
map_1.set_global_opts( #設置全局配置項#title_opts=opts.TitleOpts(title="安徽疫情"), 添加標題
visualmap_opts=opts.VisualMapOpts(max_=120, is_piecewise=True),#最大數據範圍 而且使用分段
legend_opts=opts.LegendOpts(is_show=False), #是否顯示圖例
)
map_1.render_notebook() #直接在notebook中顯示# map_1.render('map1.html') 將地圖以html形式保存在工做目錄下
固然地圖還有不少能夠自定義的配置項,選擇須要的配置項添加到對應的函數中便可。學習
# 數據項 (座標點名稱,座標點值)
data_pair: Sequence,
# 地圖類型,具體參考 pyecharts.datasets.map_filenames.json 文件
maptype: str = "china",
# 是否選中圖例
is_selected: bool = True,
# 是否開啓鼠標縮放和平移漫遊。
is_roam: bool = True,
# 當前視角的中心點,用經緯度表示
center: Optional[Sequence] = None,
# 當前視角的縮放比例。
zoom: Optional[Numeric] = 1,
# 自定義地區的名稱映射
name_map: Optional[dict] = None,
# 標記圖形形狀
symbol: Optional[str] = None,
# 是否顯示標記圖形
is_map_symbol_show: bool = True,
# 標籤配置項,參考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 提示框組件配置項,參考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 圖元樣式配置項,參考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
# 高亮標籤配置項,參考 `series_options.LabelOpts`
emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None,
# 高亮圖元樣式配置項,參考 `series_options.ItemStyleOpts`
emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
最簡單的一個餅圖大數據
餅圖的更多配置項
# 系列名稱,用於 tooltip 的顯示,legend 的圖例篩選。
series_name: str,
# 系列數據項,格式爲 [(key1, value1), (key2, value2)]
data_pair: Sequence,
# 系列 label 顏色
color: Optional[str] = None,
# 餅圖的半徑,數組的第一項是內半徑,第二項是外半徑# 默認設置成百分比,相對於容器高寬中較小的一項的一半
radius: Optional[Sequence] = None,
# 餅圖的中心(圓心)座標,數組的第一項是橫座標,第二項是縱座標# 默認設置成百分比,設置成百分比時第一項是相對於容器寬度,第二項是相對於容器高度
center: Optional[Sequence] = None,
# 是否展現成南丁格爾圖,經過半徑區分數據大小,有'radius'和'area'兩種模式。# radius:扇區圓心角展示數據的百分比,半徑展示數據的大小# area:全部扇區圓心角相同,僅經過半徑展示數據大小
rosetype: Optional[str] = None,
# 餅圖的扇區是不是順時針排布。
is_clockwise: bool = True,
# 標籤配置項,參考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 提示框組件配置項,參考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 圖元樣式配置項,參考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
繼續使用地圖裏的數據繪製餅圖,如今想看安徽各地區疫情分佈比,就能夠考慮使用餅圖(玫瑰圖)。詳細代碼spa
柱狀圖map_2 = (
Pie(init_opts=opts.InitOpts(width="600px", height="500px")) 建立一個餅圖
.add(
"", #圖名
[[locate[i],data[i]] for i in range(len(locate))], #添加數據
radius=["40%", "75%"], # 調整半徑
)
.set_global_opts(
legend_opts=opts.LegendOpts(
orient="vertical", pos_top="10%", pos_left="88%"#圖例設置
),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) #設置標籤
)
map_2.render_notebook() #直接在notebook中顯示#map_2.render('map2.html') #保存到本地
demodebug
[object Object]經過添加配置項能夠調整標題、圖例、粗細、位置、背景圖等等
# 系列數據
yaxis_data: Sequence[Numeric, opts.BarItem, dict],
# 是否選中圖例
is_selected: bool = True,
# 使用的 x 軸的 index,在單個圖表實例中存在多個 x 軸的時候有用。
xaxis_index: Optional[Numeric] = None,
# 使用的 y 軸的 index,在單個圖表實例中存在多個 y 軸的時候有用。
yaxis_index: Optional[Numeric] = None,
# 系列 label 顏色
color: Optional[str] = None,
# 數據堆疊,同個類目軸上系列配置相同的 stack 值能夠堆疊放置。
stack: Optional[str] = None,
# 同一系列的柱間距離,默認爲類目間距的 20%,可設固定值
category_gap: Union[Numeric, str] = "20%",
# 不一樣系列的柱間距離,爲百分比(如 '30%',表示柱子寬度的 30%)。# 若是想要兩個系列的柱子重疊,能夠設置 gap 爲 '-100%'。這在用柱子作背景的時候有用。
gap: Optional[str] = None,
# 標籤配置項,參考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 標記點配置項,參考 `series_options.MarkPointOpts`
markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None,
# 標記線配置項,參考 `series_options.MarkLineOpts`
markline_opts: Union[opts.MarkLineOpts, dict, None] = None,
# 提示框組件配置項,參考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 圖元樣式配置項,參考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
若是想要同時疊加繪製圖形能夠採用參考如下方法
[object Object]
使用新版pyecharts並不難,基本套路都和上面同樣,只要先學會畫圖套路,再多讀官方文檔就能夠。