工具集合
- 數(shù)據(jù)由python處理,所以首先需要安裝python,官網(wǎng)下載即可??梢圆挥冒惭bpython的編輯器,自己用Notepad寫就可以。
- 安裝圖表處理庫pyecharts,命令是:pip install pyecharts。
- 在線環(huán)境不需要安裝,離線環(huán)境需要安裝的圖表靜態(tài)資源文件,下載地址
解壓后是這樣的,assets也是以后我們存放生成的html的位置,不然就不能正確解析。
靜態(tài)資源目錄結(jié)構(gòu),僅列出目錄,未顯示文件 - 圖表操作語法規(guī)則鏈接
- 萬事俱備,GOGOGO?。。?/li>
代碼細(xì)節(jié)
- 代碼前的說明:書寫的python代碼必須和assets文件夾在同一目錄下,代碼中必須包含如下兩行,用于指明在離線狀態(tài)下怎么解析生成的html文件。在之后的代碼中也會(huì)說明。要使用某一種圖表時(shí),只需要把自己的數(shù)據(jù)替換掉area_key和area_val就行,當(dāng)然你也可以自己定義新的數(shù)據(jù)獲取函數(shù),我這里只是規(guī)定了輸入數(shù)據(jù)的格式和類型。
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "./assets/"
- 柱狀圖
from pyecharts.charts import Bar
from pyecharts.charts import Page
from pyecharts.faker import Collector
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "./assets/"
C = Collector()
@C.funcs
def bar_base() -> Bar:
#area_key area_val就是要處理的數(shù)據(jù),為一個(gè)二維表,需要提前加工好,需要的時(shí)候替換就行
area_key = ['北京','上海','深圳','杭州','天津','廣州']
area_val = [114,62,46,21,74,44]
c = (
Bar()
.add_xaxis(area_key)
.add_yaxis("公司數(shù)量", area_val)
)
return c
#這句語法不用管,意思就是把你要的所有圖表一次性渲染出來。
Page().add(*[fn() for fn, _ in C.charts]).render()
柱狀圖效果:

柱狀圖
- 地域分布圖
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.charts import Geo, Page
from pyecharts.faker import Collector
from pyecharts.globals import CurrentConfig
from pyecharts.globals import ChartType, SymbolType
CurrentConfig.ONLINE_HOST = "./assets/"
C = Collector()
@C.funcs
def geo_base() -> Geo:
area_key = ['北京','上海','深圳','杭州','天津','廣州']
area_val = [114,62,46,21,74,44]
c = (
Geo()
.add_schema(maptype="china")
.add("geo", [list(z) for z in zip(area_key, area_val)])
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Geo-基本示例"),
)
)
return c
@C.funcs
def geo_base1() -> Geo:
area_key = ['北京','上海','深圳','杭州','天津','廣州']
area_val = [114,62,46,21,74,44]
c = (
Geo()
.add_schema(maptype="china")
.add("geo", [list(z) for z in zip(area_key, area_val)],
type_=ChartType.HEATMAP)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Geo-HeatMap"),
)
)
return c
Page().add(*[fn() for fn, _ in C.charts]).render()
地理分布圖效果:還有多種效果可以配置。

地理位置分布
- 折線圖
from pyecharts.charts import Line
from pyecharts.charts import Page
from pyecharts.faker import Collector
from pyecharts.globals import CurrentConfig
from pyecharts import options as opts
CurrentConfig.ONLINE_HOST = "./assets/"
C = Collector()
@C.funcs
def line_base() -> Line:
area_key = ['1月','2月','3月','4月','5月','6月']
area_val_1 = [114,62,46,21,74,44]
area_val_2 = [89,56,77,34,66,88]
c = (
Line()
.add_xaxis(area_key)
.add_yaxis("商家A", area_val_1)
.add_yaxis("商家B", area_val_2)
.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))
)
return c
Page().add(*[fn() for fn, _ in C.charts]).render()
折線圖效果:

折線圖效果
- 待補(bǔ)充
路徑配置
上述任意一段代碼成功運(yùn)行后,都會(huì)在assets同目錄下生成一個(gè)名為render.html文件,如果這個(gè)文件已經(jīng)存在,則會(huì)覆蓋,當(dāng)然你也可以把所有的圖像生成到同一個(gè)html文件里,就像地域分布圖中的那樣。
重要的是我們?cè)谑褂?strong>render.html文件時(shí)需要保持在與assets文件夾在同一目錄,且代碼中的語句CurrentConfig.ONLINE_HOST = "./assets/"不能變。同時(shí)如果要用作PPT中演示,需要把PPT拷貝到和render.html在同一目錄下,并且要帶著所有的資源文件,大約有15MB。所以最后的目錄如下:

目錄結(jié)構(gòu)
