python制作各種數(shù)據(jù)圖表

工具集合

  1. 數(shù)據(jù)由python處理,所以首先需要安裝python,官網(wǎng)下載即可??梢圆挥冒惭bpython的編輯器,自己用Notepad寫就可以。
  2. 安裝圖表處理庫pyecharts,命令是:pip install pyecharts。
  3. 在線環(huán)境不需要安裝,離線環(huán)境需要安裝的圖表靜態(tài)資源文件,下載地址
    解壓后是這樣的,assets也是以后我們存放生成的html的位置,不然就不能正確解析。
    靜態(tài)資源目錄結(jié)構(gòu),僅列出目錄,未顯示文件
  4. 圖表操作語法規(guī)則鏈接
  5. 萬事俱備,GOGOGO?。。?/li>

代碼細(xì)節(jié)

  1. 代碼前的說明:書寫的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/"
  1. 柱狀圖
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()

柱狀圖效果:


柱狀圖
  1. 地域分布圖
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()

地理分布圖效果:還有多種效果可以配置。


地理位置分布
  1. 折線圖
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()

折線圖效果:


折線圖效果
  1. 待補(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)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名:劉成龍 學(xué)號(hào):16020199016 轉(zhuǎn)載自:https://www.jiqizhixin.com/arti...
    羽_71ba閱讀 4,628評(píng)論 0 7
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,127評(píng)論 1 3
  • 作為曾軼可的“粉絲”,我很遺憾。 知道曾軼可的近況,竟然是在刷抖音的時(shí)候。 我一直認(rèn)為,在“鮮肉”泛濫,藝人流水線...
    我不怕世界閱讀 802評(píng)論 1 2
  • 孩子是上天送給我們的禮物。他是獨(dú)一無二的,無論是聰明、可愛;還是笨拙、頑皮,我們都應(yīng)如視珍寶。 自...
    ly劉英英閱讀 304評(píng)論 0 0
  • 後悔 序章: 每一個(gè)下雨天,如果你經(jīng)過墓地,你會(huì)發(fā)現(xiàn)有一個(gè)男生。穿著黑色的大衣的男子,站在一個(gè)墓碑面前一邊流著淚一...
    PhantomMao閱讀 510評(píng)論 0 0

友情鏈接更多精彩內(nèi)容