<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pyecharts的繪圖原理詳解

          共 4471字,需瀏覽 9分鐘

           ·

          2020-12-08 23:30

          其實(shí)學(xué)習(xí)任何一門編程語言,最重要的就是學(xué)習(xí)它的原理。今天給大家介紹的是,我認(rèn)為交互效果最好的一個(gè)python繪圖庫pyecharts,學(xué)會(huì)了絕對不虧。

          1.pyecharts簡介

          Echarts是一個(gè)由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而python是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上了數(shù)據(jù)可視化時(shí),pyecharts誕生了。

          pyecharts分為v0.5v1兩個(gè)大版本,v0.5和v1兩個(gè)版本不兼容,v1是一個(gè)全新的版本,因此我們的學(xué)習(xí)盡量都是基于v1版本進(jìn)行操作。

          學(xué)習(xí)任何編程語言,其實(shí)官網(wǎng)是最好的老師,下面我們列出了echarts和pyecharts的官網(wǎng),比較幸運(yùn)的是,pyecharts是由一個(gè)中國人開發(fā)的,也存在一個(gè)中文網(wǎng)站,這樣學(xué)習(xí)起來就方便多了。

          echarts官網(wǎng):

          https://www.echartsjs.com/index.html

          pyecharts官網(wǎng):

          https://pyecharts.org/#/zh-cn/intro

          安裝:

          pip install pyecharts

          查看版本:

          print(pyecharts.version)

          2.pyecharts繪圖邏輯

          1)pyecharts繪圖邏輯說明

          pyecharts是一個(gè)全新的可視化繪圖工具,因此它的繪圖邏輯完全不同于前面說到的matplotlib、seaborn、plotly。因此你想要學(xué)好這個(gè)可視化工具,最主要的就是要學(xué)會(huì)它的繪圖邏輯,俗話說:“知己知彼,百戰(zhàn)不殆”,你只有了解別人 ,才可以用起來順手呀。pyecharts的繪圖邏輯分為以下幾步。

          • ① 選擇圖表類型;
          • ② 聲明圖形類并添加數(shù)據(jù);
          • ③ 選擇全局變量;
          • ④ 顯示及保存圖表;

          第一步是選擇圖表類型,基于自己的數(shù)據(jù)特點(diǎn),我們看看自己想要繪制那種圖形,需要什么圖形就導(dǎo)入什么圖形,下面我簡單列舉了幾個(gè)導(dǎo)入方法。

          from?pyecharts.charts?import?Scatter??#?導(dǎo)入散點(diǎn)圖
          from?pyecharts.charts?import?Line?????#?導(dǎo)入折線圖
          from?pyecharts.charts?import?Pie??????#?導(dǎo)入餅圖
          from?pyecharts.charts?import?Geo??????#?導(dǎo)入地圖

          第二步是聲明圖形類并添加數(shù)據(jù),什么是圖形類呢?其實(shí)每一個(gè)圖形庫都是被pyecharts作者封裝成為了一個(gè),這就是所謂的面向?qū)ο螅覀冊谑褂眠@個(gè)類的時(shí)候,需要實(shí)例化這個(gè)類(觀察下面代碼)。聲明類之后,相當(dāng)于初始化了一個(gè)畫布,我們之后的繪圖就是在這個(gè)畫布上進(jìn)行。接下來要做的就是添加數(shù)據(jù),pyecharts中添加數(shù)據(jù)共有2種方式,一種是普通方式添加數(shù)據(jù),一種是鏈?zhǔn)秸{(diào)用(觀察下面代碼)來添加數(shù)據(jù),后面我會(huì)分章節(jié)一個(gè)個(gè)為大家介紹。

          "下面繪制的是:正弦曲線的散點(diǎn)圖"
          # 1.選擇圖表類型:我們使用的是散點(diǎn)圖,就直接從charts模塊中導(dǎo)入Scatter這個(gè)圖形。
          from?pyecharts.charts?import?Scatter
          import?numpy?as?np

          x?=?np.linspace(0,2?*?np.pi,100)
          y?=?np.sin(x)

          (
          ?#?注意:使用什么圖形,就要實(shí)例化該圖形的類;
          ?# 2.我們繪制的是Scatter散點(diǎn)圖,就需要實(shí)例化散點(diǎn)圖類,直接Scatter()?即可;
          ?Scatter()?
          ?#?實(shí)例化類后,接著就是添加數(shù)據(jù),下面這種方式就是使用“鏈?zhǔn)秸{(diào)用”的方式繪圖;
          ?#?注意:散點(diǎn)圖有X、Y軸,因此需要分別給X軸、Y軸添加數(shù)據(jù);
          ?# 3.我們先給X軸添加數(shù)據(jù);
          ?.add_xaxis(xaxis_data=x)
          ?# 4.我們再給Y軸添加數(shù)據(jù);
          ?.add_yaxis(series_name="這個(gè)圖是干嘛的",y_axis=y)
          ).render_notebook()

          第三步就是設(shè)置全局變量,用通俗的話說就是:調(diào)節(jié)各種各樣的參數(shù),把圖形變得更好看。常用的有標(biāo)題配置項(xiàng)圖例配置項(xiàng)工具配置項(xiàng)視覺映射配置項(xiàng)提示框配置項(xiàng)區(qū)域縮放配置項(xiàng)。你也許不知道這幾個(gè)名詞是什么意思,但是不用擔(dān)心,你首先是學(xué)會(huì)了如何使用pyecharts繪圖后,再慢慢學(xué)習(xí)這方面的內(nèi)容。

          • 默認(rèn)情況下圖例配置項(xiàng)和提示框配置項(xiàng)是顯示的,其它四個(gè)配置項(xiàng)默認(rèn)情況下是不顯示的,需要我們自己設(shè)置;

          第四步是顯示及保存圖表,我們這里介紹兩種最常用的保存方式,如下所示。

          .render("C:\\Users\\黃偉\\Desktop\\CSDN上傳圖像\\a.html")
          #?如果不指定路徑,就是直接保存在當(dāng)前工作環(huán)境目錄下;
          #?如果指定了路徑,就是保存到指定的目錄下;
          #?注意:最終都是以html格式展示,發(fā)給其他任何人都可以直接打開看的;

          .render_notebook()
          #?如果我們使用的是jupyter notebook,直接使用這行代碼,可以直接顯示圖片;

          3.選擇圖表類型

          下面列舉出現(xiàn)的所有圖形都在charts字模塊下,我們利用如下代碼就可以導(dǎo)入各自對應(yīng)的圖形,在上面的敘述中,我已經(jīng)列舉了部分圖形的導(dǎo)入方式。

          • from pyecharts.charts import 函數(shù)名

          注意:這里我們只列出了部分圖形,包括我們后面繪制地圖,也都是在pyecharts的子模塊charts模塊下,我們要記住這句導(dǎo)入相關(guān)圖形庫的代碼。

          4.數(shù)據(jù)添加

          1)如何添加數(shù)據(jù)呢?

          像散點(diǎn)圖、折線圖等二維數(shù)據(jù)圖形,它既有X軸,又有Y軸,所以我們不僅要為X軸添加數(shù)據(jù),還要為Y軸添加數(shù)據(jù)。

          • .add_xaxis(xaxis_data=x)為X軸添加數(shù)據(jù);
          • .add_yaxis(series_name='', y_axis=y)為Y軸添加數(shù)據(jù);

          像餅圖、地圖這樣沒有X軸、Y軸區(qū)分的圖形,我們直接使用add()方法添加即可。

          • .add(series_name='', data_pair=[(i,j)for i,j in zip(lab,num)]);

          2)pyecharts繪圖的兩種方式

          上面我們已經(jīng)說過,pyecharts中繪圖有2種方式。第一種方式:普通方式;第二種方式:鏈?zhǔn)秸{(diào)用。仔細(xì)觀察下面的演示代碼,看看區(qū)別在哪里。

          ① 鏈?zhǔn)秸{(diào)用的方式繪圖
          from?pyecharts.charts?import?Line
          import?pyecharts.options?as?opts
          import?numpy?as?np

          x?=?np.linspace(0,2?*?np.pi,100)
          y?=?np.sin(x)

          (Line(init_opts=opts.InitOpts(width="700px",height="300px"))
          ?.add_xaxis(xaxis_data=x)
          ?.add_yaxis(series_name="繪制線圖",y_axis=y,label_opts=opts.LabelOpts(is_show=False))
          ?.set_global_opts(title_opts=opts.TitleOpts(title="我是標(biāo)題",subtitle="我是副標(biāo)題",title_link="https://www.baidu.com/"),
          ??????????????????tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross"))
          ).render_notebook()

          """
          關(guān)于全局配置項(xiàng)的代碼部分,你可能不懂,現(xiàn)在不懂沒什么關(guān)系!
          """

          結(jié)果如下:

          ② 普通方式繪圖
          from?pyecharts.charts?import?Pie
          import?pyecharts.options?as?opts

          num?=?[110,?136,?108,?48,?111,?112,?103]
          lab?=?['哈士奇',?'薩摩耶',?'泰迪',?'金毛',?'牧羊犬',?'吉娃娃',?'柯基']
          x?=?[(i,?j)for?i,?j?in?zip(lab,?num)]
          print(x)

          pie?=?Pie(init_opts=opts.InitOpts(width="700px",height="300px"))
          pie.add(series_name='',data_pair=[(i,?j)for?i,?j?in?zip(lab,?num)])
          pie.render_notebook()

          結(jié)果如下:

          3)關(guān)于series_name=""的說明

          在添加數(shù)據(jù)時(shí)候,我們可以注意到series_name參數(shù)的存在,它是一個(gè)字符串。你也看到了,我們可以傳遞一個(gè)空字符串,也可以傳遞指定字符串,最終的作用有點(diǎn)類似于圖例的效果,但這里并不是設(shè)置圖例。你不需要過多的注意這個(gè)參數(shù),只需要牢記一點(diǎn):這個(gè)參數(shù)必須有,必須寫,哪怕你傳遞一個(gè)空字符串,也要寫,因?yàn)椴粚戇@個(gè)參數(shù),會(huì)報(bào)錯(cuò)。

          5.設(shè)置全局配置項(xiàng)

          當(dāng)我們學(xué)會(huì)了如何使用pyecharts繪圖,并且已經(jīng)繪制出來了某個(gè)圖形,此時(shí)這個(gè)圖形并不一定好看。這就需要我們學(xué)會(huì)使用全局配置項(xiàng),進(jìn)行圖形參數(shù)的調(diào)節(jié)與設(shè)置。

          所有的全局配置項(xiàng)的使用,都是在options這個(gè)子模塊下,我們在設(shè)置全局配置項(xiàng)的時(shí)候,記得導(dǎo)入這個(gè)模塊。這部分涉及到的參數(shù)太多太雜,當(dāng)你覺得某個(gè)圖形需要怎么改的時(shí)候,一般肯定是有對應(yīng)的參數(shù)進(jìn)行處理的,你要相信你能想到的,別人大神肯定是都想到了,這個(gè)時(shí)候你就需要學(xué)會(huì)使用官網(wǎng)。

          • import pyecharts.options as opts
          • 使用options配置項(xiàng),在 pyecharts中,一切皆O(shè)ptions。
          • 全局配置項(xiàng)可通過調(diào)用set_global_options()方法進(jìn)行設(shè)置。

          注意:默認(rèn)情況下圖例配置項(xiàng)和提示框配置項(xiàng)是顯示的,其他四個(gè)配置項(xiàng)默認(rèn)情況下是不顯示的,需要我們自己設(shè)置。

          6.顯示及保存圖表

          • .render()默認(rèn)將會(huì)在當(dāng)前工作目錄下生成一個(gè) render.html 的文件,支持path參數(shù),進(jìn)行自定義文件保存位置,最終文件你可以可以發(fā)送給任何人,直接用瀏覽器打開,交互效果仍然存在。
          • Jupyter Notebook中直接調(diào)用.render_notebook()隨時(shí)隨地渲染圖表。


          更多閱讀



          pyecharts 對疫情數(shù)據(jù)進(jìn)行可視化分析


          用 pyecharts 畫出中國疫情地圖(附源碼)


          獨(dú)家 | pyecharts V1.0.0 版本正式發(fā)布


          特別推薦


          程序員摸魚指南


          為你精選的硅谷極客資訊,
          來自FLAG巨頭開發(fā)者、技術(shù)、創(chuàng)投一手消息




          點(diǎn)擊下方閱讀原文加入社區(qū)會(huì)員


          瀏覽 28
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲乱伦不卡 | 影音先锋成人电影在线播放 | 成年人精品视频 | 日韩乱伦AV | 色情视频网站在线免费观看 |