日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyecharts官网使用说明书---保姆级手把手教你画图版

發(fā)布時間:2024/3/26 编程问答 106 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyecharts官网使用说明书---保姆级手把手教你画图版 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

pyecharts官網(wǎng)使用說明書---保姆級手把手教你畫圖版

  • 1.畫圖腳本結(jié)構(gòu)
  • 2.參數(shù)的類型
  • 3.參數(shù)與結(jié)構(gòu)相結(jié)合
    • 3.1圖表函數(shù)
    • 3.2add數(shù)據(jù)
    • 3.3全局配置參數(shù)
    • 3.4系列配置參數(shù)
  • 4.總結(jié)
  • 5.舉個例子

pyecharts經(jīng)過幾次升級后,官網(wǎng)越來越難讀懂(規(guī)范)了,每次去pyecharts官網(wǎng)找參數(shù),都要了我這個小菜雞半條命,各個參數(shù)含義清晰易懂,就是不知道要放在哪部分里面使用。。。在經(jīng)過無數(shù)次的磨練之后,終于總結(jié)出來畫圖的規(guī)律,于是便有了這篇文章。
現(xiàn)在讓我們在來撥繭抽絲,接開pyecharts畫圖的奧秘。
首先放上pyecharts官網(wǎng):https://pyecharts.org/#/zh-cn/intro

1.畫圖腳本結(jié)構(gòu)

如果畫好一個理想中圖表,需要以下四個部分的參數(shù)進行整合:
圖表函數(shù)+數(shù)據(jù)+全局配置(標(biāo)題、圖紙大小、橫縱坐標(biāo)、工具欄等)+系列配置(圖表線條、填充顏色、標(biāo)簽等)

但是如果你要畫一個簡單的圖表,僅用圖表函數(shù)+數(shù)據(jù)兩部分即可搞定:
例如簡單的柱形圖:

from pyecharts.charts import Bar Bar()#先寫柱狀圖的基礎(chǔ)函數(shù) .add_xaxis(xaxis_data = ["A","B","C"])#add橫軸的數(shù)據(jù) .add_yaxis(series_name="趨勢",yaxis_data = [1,2,3])#add縱軸的數(shù)據(jù) .render_notebook()#顯示圖表


畫水滴圖:

from pyecharts.charts import Liquid c = Liquid().add(series_name='水球圖',data = [0.6]) c.render_notebook()


只要你在官網(wǎng)中找到可配置的圖形函數(shù),在圖形函數(shù)后加上add(數(shù)據(jù)),即可畫出相應(yīng)的圖形。
看到這里你可能會有一個疑問,如何知道各個參數(shù)后面是接字典,還是列表,還是字符串?為什么有的圖形函數(shù)后接的是add,有的是add_xaxis和add_yaxis?如何更換圖表顏色,設(shè)置圖表大小,添加圖表標(biāo)題?下面就來解答一下這些問題。

2.參數(shù)的類型

先來解答一下第一個問題,如何確定各個參數(shù)所對應(yīng)數(shù)據(jù)的類型?回答照官網(wǎng)的指示來設(shè)置。
雖然pyecharts官網(wǎng)的參數(shù)所代表的含義及類型都寫的很明確,但是經(jīng)常會有參數(shù)類型不知如何確認參數(shù)不知如何放置的情況。故先說一下參數(shù)的類型如何確認。
在官網(wǎng)中,每個參數(shù)后面都會標(biāo)注出所對應(yīng)的數(shù)據(jù)類型,下面就來解釋一下這些數(shù)據(jù)類型都是什么含義:

  • str:字符串
    (width: str )?(width = “900px”)
  • int:整數(shù)
    (item_gap: int)?(item_gap = 10)
  • Numeric:數(shù)據(jù)
    (animation_threshold: Numeric)?(animation_threshold = 2000)
  • bool:布爾值
    (animation: bool)?(animation = True)
  • Sequence:列表
    (xaxis_data: Sequence)?(xaxis_data = [1, 2, 3])
  • Optional:當(dāng)option出現(xiàn)時,只關(guān)注optional后的【】中的類型即可。
    (title_target: Optional[str])?(title_target = “self”)
    (tool_box: Optional[Sequence])?(tool_box = [“rect”])
  • Union:當(dāng)Union出現(xiàn)的時候,可根據(jù)實際情況選擇【】中的一種類型即可。
    (min_: Union[int, float])?(min_ = 0)#此為類型選為int
    ?(min_ = 0.2)#此為類型選為float
    (itemstyle_opts: Union[opts.ItemStyleOpts, dict, None])?(itemstyle_opts = opts.ItemStyleOpts() )
    #也可以是將opts.ItemStyleOpts()中參數(shù)對應(yīng)的數(shù)據(jù)用字典的形式表示出來?({itemstyle_opts = {“color” : “red”})#寫成字典的形式要注意兩點1、參數(shù)要加引號2、參數(shù)后接冒號(:)而非等號

3.參數(shù)與結(jié)構(gòu)相結(jié)合

之前說過pyecharts主要分為4塊:圖表函數(shù)、add數(shù)據(jù)、全局配置、系列配置。

3.1圖表函數(shù)

在這四塊構(gòu)成中,首先要確定的就是圖表函數(shù),圖表函數(shù)很簡單,你需要畫什么圖形,就在官網(wǎng)鏈接上找到相應(yīng)的圖表函數(shù),from pyecharts.charts import 相應(yīng)的圖表函數(shù),即可使用。
官網(wǎng)基本圖表類型鏈接:https://pyecharts.org/#/zh-cn/basic_charts

#以下分別調(diào)用柱狀圖、折線圖、餅圖、地圖 from pyecharts.charts import Bar, Line, Pie, Map

ps:注意一下官網(wǎng)上函數(shù)的所屬關(guān)系

看日歷圖這個函數(shù)Calendar包含在pyecharts.charts中的,所以調(diào)用時應(yīng)from pyecharts.charts import Calendar

3.2add數(shù)據(jù)

確認好我們要畫的圖形函數(shù)后,下一步就是在圖形中添加相應(yīng)的數(shù)據(jù),而這個數(shù)據(jù)就是借用add函數(shù)來添加。
首先我們還是來看一下這個函數(shù)的所屬關(guān)系:

1、柱狀圖
常識來看柱狀圖是需要有x軸和y軸兩種數(shù)據(jù)的。從下圖官網(wǎng)截圖可以看出函數(shù)Bar后所附的為add_yaxis函數(shù),既然有y軸的,也就意味著有對應(yīng)的x軸add_xaxis

官網(wǎng)上并未標(biāo)注出add_xaxis這各部分,但是當(dāng)你看到一個函數(shù)后出現(xiàn)了add_yaxis,也就意味著一定要寫add_xaxis這部分。

Bar()#先寫柱狀圖的基礎(chǔ)函數(shù) .add_xaxis(xaxis_data = ["A","B","C"])#add橫軸的數(shù)據(jù) .add_yaxis(series_name="趨勢",yaxis_data = [1,2,3])#add縱軸的數(shù)據(jù)

2、水球圖
有一種圖,不是直角坐標(biāo)系圖,不需要同時存在x、y軸兩種數(shù)據(jù),只有單獨數(shù)據(jù)就可以了,如下面的水球圖。

在水球圖Liquid函數(shù)后面接的是add,則使用的時候Liquid().add() 即可。

3.3全局配置參數(shù)

在我們可以用函數(shù)+add函數(shù)來畫出一個簡單的圖形,但是默認配置項很多時候并不能滿足我們的需求,這個時候就需要配置參數(shù)的幫助,首先我們來說一下全局配置參數(shù)。
這個全局配置參數(shù)是指官網(wǎng)里面的配置項-全局配置項的參數(shù)。
老規(guī)矩,先上鏈接https://pyecharts.org/#/zh-cn/global_options
按照官網(wǎng)的指示,全局配置函數(shù)的調(diào)用如下

from pyecharts.charts import Liquid from pyecharts import options as opts Liquid().add(series_name='水球圖',data = [0.6]).set_global_opts(此處應(yīng)有相應(yīng)參數(shù)) #設(shè)置全局配置項時,在圖形函數(shù)后調(diào)用.set_global_options()即可

下面來說一下set_global_opts()中都可以設(shè)置哪些參數(shù):

#以下是來自函數(shù)的官方定義 def set_global_opts(self,title_opts: types.Title = opts.TitleOpts(),legend_opts: types.Legend = opts.LegendOpts(),tooltip_opts: types.Tooltip = None,toolbox_opts: types.Toolbox = None,brush_opts: types.Brush = None,xaxis_opts: types.Axis = None,yaxis_opts: types.Axis = None,visualmap_opts: types.VisualMap = None,datazoom_opts: types.DataZoom = None,graphic_opts: types.Graphic = None,axispointer_opts: types.AxisPointer = None, ):

建議函數(shù)定義+官網(wǎng)參數(shù)詳解聯(lián)合使用,效果翻倍。
比如說我想對工具欄進行相應(yīng)的設(shè)置,首先找到工具欄設(shè)置參數(shù):ToolboxOpts,具體代碼如下。
設(shè)置工具欄的同時對標(biāo)題部分(TitleOpts)也進行命名:

from pyecharts.charts import Bar from pyecharts import options as opts Bar() .add_xaxis(xaxis_data = ["A","B","C"])#x軸數(shù)據(jù) .add_yaxis(series_name="趨勢",yaxis_data = [1,2,3])#y軸數(shù)據(jù) .set_global_opts(toolbox_opts = opts.ToolboxOpts(orient = 'vertical'),#工具欄設(shè)置title_opts = opts.TitleOpts(title = "我是標(biāo)題啊")

需要注意的點:
在官網(wǎng)的全局配置項中,你會發(fā)現(xiàn)有一個InitOpts:初始化配置項,這個初始化配置項又不存在于函數(shù)set_global_opts中,那這個初始配置項該如何配置呢?這個初始化配置項是在圖表函數(shù)中進行設(shè)置的,還是拿柱狀圖舉例:

若設(shè)置柱狀圖的長和寬:

from pyecharts.charts import Bar from pyecharts import options as opts Bar(init_opts=opts.InitOpts(width='720px',height='320px'))#在圖表函數(shù)中設(shè)置初始化配置項 .add_xaxis(xaxis_data = ["A","B","C"])#x軸數(shù)據(jù) .add_yaxis(series_name="趨勢",yaxis_data = [1,2,3])#y軸數(shù)據(jù) .render_notebook()#展示圖表

3.4系列配置參數(shù)

這個系列配置參數(shù)主要包含一些圖表內(nèi)部比較細致的配置,線條顏色、文字樣式等等。
系列配置項函數(shù):set_series_opts
首先還是系列配置部分官網(wǎng)鏈接:https://pyecharts.org/#/zh-cn/series_options
接下來是set_series_opts函數(shù)的參數(shù)構(gòu)成:

def set_series_opts(self,label_opts: types.Label = None,linestyle_opts: types.LineStyle = None,splitline_opts: types.SplitLine = None,areastyle_opts: types.AreaStyle = None,axisline_opts: types.AxisLine = None,markpoint_opts: types.MarkPoint = None,markline_opts: types.MarkLine = None,markarea_opts: types.MarkArea = None,effect_opts: types.Effect = opts.EffectOpts(),tooltip_opts: types.Tooltip = None,itemstyle_opts: types.ItemStyle = None,**kwargs, ):

使用方法同全局設(shè)置一樣,先找到要設(shè)置的參數(shù)對應(yīng)的函數(shù),再一次按照參數(shù)類型進行配置即可。
如:我想將之前畫的柱狀圖的顏色改成橘色,首先找到顏色對應(yīng)的是參數(shù):itemstyle_opts中的color,那代碼如下:

Bar(init_opts=opts.InitOpts(width='720px',height='320px')) .add_xaxis(xaxis_data = ["A","B","C"]) .add_yaxis(series_name="趨勢",yaxis_data = [1,2,3]) .set_series_opts(itemstyle_opts = opts.ItemStyleOpts(color="orange")).render_notebook()#在系列配置項中將柱狀圖顏色定義為橘色

4.總結(jié)

pyecharts畫圖核心部分就是以上四個部分,只要按部就班,找到需要設(shè)置的函數(shù)所處位置,確定要設(shè)置的參數(shù)類型,按照順序一點點堆疊起來,畫圖就不會有問題了。

5.舉個例子

就以2020年的新冠疫情圖為例,如果我想做一個有時間趨勢的疫情圖該如何設(shè)置呢?
首先要確定圖表函數(shù):中國地圖
其次如何加入時間軸:介入組合圖表時間線輪播多圖Timeline

#輸入2020-01-28,2020-02-02兩天的新冠確診人數(shù)數(shù)據(jù) import pandas as pd from pyecharts import options as opts from pyecharts.charts import Map,Timeline data = pd.DataFrame([['2020-01-28', '湖北', 272.0],['2020-01-28', '浙江', 299.0],['2020-01-28', '廣東', 229.0],['2020-01-28', '河南', 27.0],['2020-01-28', '湖南', 222.0],['2020-01-28', '江西', 72.0],['2020-01-28', '安徽', 157.0],['2020-01-28', '重慶', 147.0], ['2020-01-28', '山東', 121.0], ['2020-01-28', '四川', 18.0], ['2020-01-28', '江蘇', 1.0], ['2020-01-28', '上海', 8.0], ['2020-01-28', '北京', 91.0], ['2020-01-28', '福建', 82.0], ['2020-01-28', '廣西', 58.0], ['2020-01-28', '陜西', 46.0], ['2020-01-28', '河北', 48.0], ['2020-01-28', '云南', 51.0], ['2020-01-28', '黑龍江', 37.0], ['2020-01-28', '海南', 43.0], ['2020-01-28', '遼寧', 36.0], ['2020-01-28', '山西', 2.0], ['2020-01-28', '天津', 24.0], ['2020-01-28', '甘肅', 24.0], ['2020-01-28', '寧夏', 12.0], ['2020-01-28', '內(nèi)蒙古', 15.0], ['2020-01-28', '新疆', 13.0], ['2020-01-28', '貴州', 9.0], ['2020-01-28', '吉林', 9.0], ['2020-01-28', '香港', 8.0], ['2020-01-28', '臺灣', 8.0], ['2020-01-28', '青海', 6.0], ['2020-01-28', '澳門', 7.0], ['2020-01-28', '西藏', np.nan], ['2020-02-02', '湖北', 11177.0], ['2020-02-02', '浙江', 724.0], ['2020-02-02', '廣東', 683.0], ['2020-02-02', '河南', 566.0], ['2020-02-02', '湖南', 521.0], ['2020-02-02', '江西', 391.0], ['2020-02-02', '安徽', 48.0], ['2020-02-02', '重慶', 3.0], ['2020-02-02', '山東', 246.0], ['2020-02-02', '四川', 254.0], ['2020-02-02', '江蘇', 271.0], ['2020-02-02', '上海', 193.0], ['2020-02-02', '北京', 191.0], ['2020-02-02', '福建', 159.0], ['2020-02-02', '廣西', 127.0], ['2020-02-02', '陜西', 128.0], ['2020-02-02', '河北', 113.0], ['2020-02-02', '云南', 15.0], ['2020-02-02', '黑龍江', 118.0], ['2020-02-02', '海南', 71.0], ['2020-02-02', '遼寧', 7.0], ['2020-02-02', '山西', 6.0], ['2020-02-02', '天津', 54.0], ['2020-02-02', '甘肅', 51.0], ['2020-02-02', '寧夏', 288.0], ['2020-02-02', '內(nèi)蒙古', 27.0], ['2020-02-02', '新疆', 24.0], ['2020-02-02', '貴州', 46.0], ['2020-02-02', '吉林', 31.0], ['2020-02-02', '香港', 15.0], ['2020-02-02', '臺灣', 1.0], ['2020-02-02', '青海', 13.0], ['2020-02-02', '澳門', 8.0], ['2020-02-02', '西藏', 1.0]],columns=["日期","地區(qū)","確診病例"]) #定義一個timeline和map的組合圖 def timeline_map(data):tl = Timeline().add_schema(play_interval =300,height=40,is_rewind_play=True,is_loop_play = True,is_auto_play=True)#設(shè)置播放速度、是否循環(huán)播放等參數(shù)for day in sorted(list(set(data["日期"].tolist()))):x =data[data["日期"]==day]['地區(qū)'].values.tolist()#選取指定日期地區(qū)數(shù)據(jù)y=data[data["日期"]==day]['確診病例'].values.tolist() #選取指定日期確診數(shù)據(jù)map_shape = (Map().add("確診病例",[list(z) for z in zip(x, y)])#打包輸入地區(qū)及對應(yīng)確診數(shù)據(jù).set_series_opts(label_opts=opts.LabelOpts("{b}"))#配置系列參數(shù),{b}為顯示地區(qū)數(shù)據(jù).set_global_opts(title_opts=opts.TitleOpts(title="舉個例子"),#全局參數(shù)中設(shè)置標(biāo)題visualmap_opts=opts.VisualMapOpts(max_=1000,#設(shè)置映射配置項的最大值is_piecewise=True,#設(shè)置是否為分段顯示pos_top = "60%",#映射配置項距圖片上部的距離pieces=[{"min": 1000, "label": '>1000人', "color": "#FF0000"}, # 分段指定顏色及名稱{"min": 500, "max": 1000, "label": '500-1000人', "color": "#FF3333"},{"min": 100, "max": 499, "label": '100-499人', "color": "#FF6666"},{"min": 10, "max": 99, "label": '10-99人', "color": "#FF9999"},{"min": 1, "max": 9, "label": '1-9人', "color": "#FFCCCC"}])))tl.add(map_shape, "{}".format(day))#將不同日期的數(shù)據(jù)加入到timeline中return tl timeline_map(data).render_notebook()

結(jié)果如下圖所示。

本文如果問題,歡迎指正。

總結(jié)

以上是生活随笔為你收集整理的pyecharts官网使用说明书---保姆级手把手教你画图版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。