plotnine 繪圖 本文中我們將一起學習:
使用 plotnine
創(chuàng)建可視化 高效又一致 設置環(huán)境 這里我們將一起學習如何設置我們的環(huán)境。
虛擬環(huán)境 使我們能夠在隔離的環(huán)境中安裝軟件包。當我們想嘗試一些軟件包或項目,而又不想搞亂已配置好的系統(tǒng)安裝時,這是非常有用的。
運行以下命令,創(chuàng)建一個名為data-visualization
的目錄,并在其中創(chuàng)建一個虛擬環(huán)境。
$ mkdir data-visualization $ cd data-visualization $ python3 -m venv venv
運行上述命令后,會在 data-visualization
目錄中找到我們的虛擬環(huán)境。運行下面的命令來激活虛擬環(huán)境并開始使用它。
$ source ./venv/bin/activate
當我們激活一個虛擬環(huán)境時,安裝的任何軟件包都將被安裝在環(huán)境內(nèi),而不影響原有系統(tǒng)范圍的安裝。
接下來,使用 pip 包在虛擬環(huán)境中安裝 plotnine
。通過運行此命令安裝 plotnine
。
$ python -m pip install plotnine
最后,安裝 Jupyter Notebook
。雖然這不是使用 plotnine 的嚴格必要條件,但 Jupyter Notebook 在處理數(shù)據(jù)和建立可視化時超級有用。
要安裝Jupyter筆記本,使用以下命令。
$ python -m pip install jupyter
現(xiàn)在有了一個安裝了 plotnine 和 Jupyter 筆記本的虛擬環(huán)境!有了這個設置,接下來就可以繼續(xù)本文的學習了。
其實還有另一種創(chuàng)建虛擬環(huán)境的方法,如果你已經(jīng)安裝了anaconda,用它來創(chuàng)建虛擬環(huán)境,也不失為一種好的方法,由于該方法我們之前已經(jīng)介紹了,此處不做過多介紹,
建立第一個圖表 在本節(jié)中,我們將學習如何在Python中使用ggplot建立我們的第一個數(shù)據(jù)可視化。我們還將學習如何檢查和使用 plotnine 附帶的示例數(shù)據(jù)集。
當我們熟悉 plotnine 了功能時,這些例子數(shù)據(jù)集確實很方便。每個數(shù)據(jù)集都是以 pandas DataFrame 的形式提供的,它是一種用來保存數(shù)據(jù)的二維的表格數(shù)據(jù)結(jié)構(gòu)。
我們將使用下列數(shù)據(jù)集做演示??梢栽?span>plotnine參考資料[2] 中找到完整的示例數(shù)據(jù)集列表。
**economics
**:美國經(jīng)濟數(shù)據(jù)的時間序列 **mpg
**:一系列車輛的燃油經(jīng)濟性數(shù)據(jù) **Huron
**:休倫湖在1875年至1972年間的水位。 我們可以使用Jupyter筆記本來檢查任何數(shù)據(jù)集。用以下命令啟動 Jupyter 筆記本。
$ source ./venv/bin/activate $ jupyter-notebook
然后,一旦進入Jupyter筆記本,運行下面的代碼就可以看到經(jīng)濟學數(shù)據(jù)集中的原始數(shù)據(jù)。
from plotnine.data import economics economics
該代碼從 plotnine.data
導入經(jīng)濟學數(shù)據(jù)集,并在一個表格中顯示。
date pce pop psavert uempmed unemploy 0 1967-07-01 507.4 198712 12.5 4.5 2944 1 1967-08-01 510.5 198911 12.5 4.7 2945 ... ... ... ... ... ... ... 572 2015-03-01 12161.5 320707 5.2 12.2 8575 573 2015-04-01 12158.9 320887 5.6 11.7 8549
如表所示,該數(shù)據(jù)集包括1967年至2015年間每個月的經(jīng)濟信息。每一行都有以下字段。
uempmed :失業(yè)時間的中位數(shù)(以周計)unemploy :失業(yè)人數(shù)(以千計)現(xiàn)在,使用plotnine,我們可以創(chuàng)建一個圖來顯示人口歷年的演變。
from plotnine.data import economicsfrom plotnine import ggplot, aes, geom_line ( ggplot(economics) # 使用什么數(shù)據(jù)? + aes(x='date' , y='pop' ) # 使用什么變量 + geom_line() # 用來繪圖的幾何對象 )
該代碼例子從economics
數(shù)據(jù)集中創(chuàng)建了一個圖。
第1行 導入的是經(jīng)濟學數(shù)據(jù)集。第2行 導入了 ggplot()
類,以及plotnine的一些有用的函數(shù):aes()
和geom_line()
。第5行 使用 ggplot()
創(chuàng)建一個繪圖對象,并將DataFrame傳遞給構(gòu)造函數(shù)。第6行 添加 aes()
來設置每個軸使用的變量,在這里是 date
和 pop
。第7行 添加了geom_line()
來指定圖表應該被繪制成線形圖。運行上述代碼產(chǎn)生的輸出結(jié)果如下。
一個顯示種群隨時間演變的圖 這里使用圖形語法時需要指定的三個必要的組件。
注意到,不同的組件是用 +
運算符組合的。
在下面的章節(jié)中,我們將更深入地了解圖形語法以及如何使用 plotnine
創(chuàng)建數(shù)據(jù)可視化。
了解圖形語法 我們可以在文檔中查閱很多有用的信息:
https://plotnine./en/stable/index.html 圖形語法是一種高級工具,它描述圖形的組成部分,將在畫布上實際繪制像素的低層次細節(jié)中抽象出來。
稱之為語法 ,是因為它定義了組件和規(guī)則,該規(guī)則定義了如何組合組件以創(chuàng)建圖形,就像語言語法定義了如何組合單詞和標點符號以形成句子。
有許多不同的圖形語法,它們在使用的組件和規(guī)則方面都有所不同。plotnine
實現(xiàn)的圖形語法是基于R編程語言中的ggplot2。這種特定的語法在Hadley Wickham的論文 ['A Layered Grammar of Graphics '](http://vita./papers/layered-grammar.pdf ''A Layered Grammar of Graphics '')中提出。
下面,我們將了解 plotnine
的圖形語法的主要組成部分和規(guī)則,以及如何使用它們來創(chuàng)建數(shù)據(jù)可視化。首先,回顧一下創(chuàng)建繪圖的三個必要組成部分 。
數(shù)據(jù) 是在創(chuàng)建繪圖時要使用的信息。Aesthetics (aes
) 提供了數(shù)據(jù)變量和底層繪圖系統(tǒng)使用的aesthetic
,或圖形變量之間的映射。在上一節(jié)中,我們將日期和人口的數(shù)據(jù)變量映射到X軸和Y軸的aesthetic
變量。幾何對象 (geoms
) 定義了繪圖中使用的幾何對象的類型??梢允褂命c、線、條和許多其他東西。如果沒有這三個組成部分中的任何一個,plotnine
就不知道如何繪制圖形。
接下來了解可以使用的可選組件 。
統(tǒng)計轉(zhuǎn)換 指定了在繪制數(shù)據(jù)之前對其進行的計算和匯總。在從data
到aes
的映射過程中,軸刻度 應用了一些轉(zhuǎn)換。例如,可以使用一個對數(shù)log
刻度來更好地反映數(shù)據(jù)的某些方面。 Facets 根據(jù)一些屬性將數(shù)據(jù)分為幾組,然后在同一個圖形中把每組繪制成一個單獨的面板。坐標系統(tǒng) 將對象的位置映射到圖中的二維圖形位置。例如,我們可以選擇翻轉(zhuǎn)縱軸和橫軸,如果這在我們建立的可視化中更有意義。上面概括性地介紹了繪圖所需要用的組件,有個簡單直觀印象,接下來我們將逐個學習。
繪制數(shù)據(jù)圖 在本節(jié)中,我們將了解更多關(guān)于使用 plotnine 創(chuàng)建數(shù)據(jù)可視化的三個必要組件。
我們還會看到它們是如何被組合起來,從數(shù)據(jù)集中創(chuàng)建一個圖。
Data -- 信息的來源 當創(chuàng)建一個數(shù)據(jù)可視化時,第一步是指定要繪制的數(shù)據(jù)。在plotnine
中,可以通過創(chuàng)建一個ggplot
對象并將我們想使用的數(shù)據(jù)集傳遞給構(gòu)造函數(shù)來完成。
下面的代碼使用plotnine
的燃油經(jīng)濟性示例數(shù)據(jù)集mpg創(chuàng)建了一個ggplot對象。
from plotnine.data import mpgfrom plotnine import ggplot ggplot(mpg)
這段代碼使用mpg
數(shù)據(jù)集創(chuàng)建了一個屬于ggplot
類的對象。注意,由于我們還沒有指定aes
或geoms
,上面的代碼將生成一個空白的畫布。接下來,我們將一塊一塊地構(gòu)建這個繪圖。
導入并檢查數(shù)據(jù)集 from plotnine.data import mpg mpg
這兩行代碼導入并顯示了數(shù)據(jù)集,顯示了以下輸出。
manufacturer model displ year cyl trans drv cty hwy fl class 0 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact 1 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact 2 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact ...
輸出是一個包含1999年至2008年234輛汽車的油耗數(shù)據(jù)的表格。排量( displ
)字段是發(fā)動機的大小,單位是升。cty
和 hwy
是城市和公路駕駛的燃油經(jīng)濟性,單位是英里/加侖。
下面我們將學習使用 plotnine
將這些原始數(shù)據(jù)變成圖形的步驟。
Aesthetics -- 為每個軸定義變量 在指定了可視化的數(shù)據(jù)后,下一步是定義在繪圖中的每個軸上使用的變量。DataFrame 中的每一行都可以包含許多字段,所以我們必須告訴 plotnine
我們想在圖形中使用哪些變量。
Aes
將數(shù)據(jù)變量映射為圖形屬性,如2D位置和顏色。例如,下面的代碼創(chuàng)建了一個圖形,在X軸上顯示車輛類別,在Y軸上顯示公路油耗。
from plotnine.data import mpgfrom plotnine import ggplot, aes ggplot(mpg) + aes(x='class' , y='hwy' )
以上一節(jié)中的ggplot對象作為可視化的基礎,將車輛類別屬性映射到水平圖軸上,將hwy
燃油經(jīng)濟性映射到垂直軸上。
到這里,生成的圖仍然是空白的,因為它缺少代表每個數(shù)據(jù)元素的幾何對象。
Geoms -- 選擇不同的圖類型 在定義了數(shù)據(jù)和圖形中使用的屬性后,我們需要指定一個幾何對象來告訴 plotnine
如何繪制數(shù)據(jù)點。
plotnine
提供了很多幾何對象,均可以開箱即用,比如線、點、條、多邊形 等等。所有可用的幾何對象的列表可在 plotnine 的 geoms API 參考 [3] 中找到。
下面的代碼說明了如何使用點的幾何對象來繪制數(shù)據(jù)。
from plotnine.data import mpgfrom plotnine import ggplot, aes, geom_point ggplot(mpg) + aes(x='class' , y='hwy' ) + geom_point()
在上面的代碼中,geom_point()
選擇了點的幾何對象。運行該代碼會產(chǎn)生以下輸出。
如圖所示,生成的數(shù)據(jù)可視化對數(shù)據(jù)集中的每輛車都有一個點。軸顯示了車輛類別和公路燃油經(jīng)濟性。
還有許多其他的幾何對象,可以用它們來可視化同樣的數(shù)據(jù)集。例如,下面的代碼使用條形幾何對象來顯示每個類別的車輛數(shù)量。
from plotnine.data import mpgfrom plotnine import ggplot, aes, geom_bar ggplot(mpg) + aes(x='class' ) + geom_bar()
這里,geom_bar()
將幾何對象設置為bar。由于代碼中沒有為Y軸指定任何屬性,geom_bar()
隱含地將數(shù)據(jù)點按X軸所用的屬性分組,然后將每組中的點的數(shù)量用于Y軸。
運行該代碼,我們會看到以下輸出。
圖中每個條形的高度代表屬于相應車輛類別的車輛數(shù)量。我們將在后面的章節(jié)中了解更多關(guān)于數(shù)據(jù)聚合和分組的信息。
接下來我們將了解到一些可選的組件,可以用來創(chuàng)建更復雜和漂亮的圖形。
加強數(shù)據(jù)可視化 在本節(jié)中,我們將了解到在用 plotnine 構(gòu)建數(shù)據(jù)可視化時可以使用的可選組件。這些組件可以分為五類。可以用它們來創(chuàng)建更豐富、更美麗的圖表。
Statistical transformations 統(tǒng)計轉(zhuǎn)換 Coordinates systems 坐標軸系統(tǒng) 統(tǒng)計轉(zhuǎn)換 -- 匯總和轉(zhuǎn)換數(shù)據(jù) 統(tǒng)計轉(zhuǎn)換在繪制數(shù)據(jù)之前對其進行一些計算,例如,顯示一些統(tǒng)計指標而不是原始數(shù)據(jù)。
柱狀圖 假設創(chuàng)建一個柱狀圖 來顯示 Lake Huron 從1875年到1975年的水位分布情況。導入并檢查數(shù)據(jù)集。
#導入休倫湖1875-1975年水位的示例數(shù)據(jù)集 from plotnine.data import huron huron
該代碼導入并顯示了數(shù)據(jù)集。
year level decade 0 1875 580.38 1870 1 1876 581.86 1870 ... 96 1971 579.89 1970 97 1972 579.96 1970
正如我們所看到的,該數(shù)據(jù)集包含三列。
現(xiàn)在可以分兩步建立直方圖。
代碼 from plotnine.data import huronfrom plotnine import ggplot, aes, stat_bin, geom_bar ggplot(huron) + aes(x='level' ) + stat_bin(bins=10 ) + geom_bar()
在上面的代碼中,stat_bin()
將水平范圍劃分為十個大小相等的bin
。然后用條形圖畫出落入每個倉的測量值的數(shù)量。
這張圖顯示了每個湖泊水位范圍的測量次數(shù)。大部分時間的水位都在578和580之間。
對于大多數(shù)常見的任務,如構(gòu)建直方圖,plotnine
中的函數(shù)非常方便,代碼很簡潔。例如,使用 geom_histogram()
建立上述直方圖。
from plotnine.data import huronfrom plotnine import ggplot, aes, geom_histogram ggplot(Huron) + aes(x='level' ) + geom_histogram(bins=10 )
使用 geom_histogram()
與使用 stats_bin()
然后 geom_bar()
是一樣的。運行這段代碼會生成上面相同圖形。
箱形圖 現(xiàn)在看看統(tǒng)計轉(zhuǎn)換的另一個例子。箱形圖 是一個非常流行的統(tǒng)計工具,用于顯示數(shù)據(jù)集的最小值、最大值、中位數(shù)、第一和第三四分位數(shù)以及離群值 。
假設在同一個數(shù)據(jù)集上建立一個可視化,以顯示每個十年的水平測量的箱形圖。我們可以分兩步建立這個圖。
可以使用美學規(guī)范中的 factor()
來完成。 factor()
將所有對指定屬性有相同值的數(shù)據(jù)點組合在一起。
然后把數(shù)據(jù)按年代分組就可以用 geom_boxplot()
為每組數(shù)據(jù)畫一個箱形圖。
下面的代碼使用上述步驟創(chuàng)建了一個繪圖。
from plotnine.data import huronfrom plotnine import ggplot, aes, geom_boxplot ( ggplot(huron) + aes(x='factor(decade)' , y='level' ) + geom_boxplot() )
該代碼使用 factor()
將數(shù)據(jù)行按年代分組,然后使用 geom_boxplot()
來創(chuàng)建箱形圖。
其實一些幾何對象有隱含的統(tǒng)計變換,這可以使我們的代碼更加簡潔。使用geom_boxplot()
等同于 stat_boxplot()
,它負責計算四分位數(shù)和離群值。
運行上述代碼,我們會得到以下圖形。
該箱形圖顯示了每個十年的水位分布情況 還有其他的統(tǒng)計轉(zhuǎn)換,可以用Python中的ggplot來構(gòu)建數(shù)據(jù)的可視化。
刻度 -- 改變數(shù)據(jù)尺度 刻度是另一種轉(zhuǎn)換,可以在從data
到aes
的映射中應用,可以幫助可視化更容易理解。
這里看到了一個顯示1970年以來各年人口的圖。下面的代碼顯示了如何使用標尺,而不是原始日期, 來顯示自1970年以來的歷年情況。
from plotnine.data import economicsfrom plotnine import ggplot, aes, scale_x_timedelta, labs, geom_line ( ggplot(economics) + aes(x='date' , y='pop' ) + scale_x_timedelta(name='Years since 1970' ) + labs(title='Population Evolution' , y='Population' ) + geom_line() )
使用 scale_x_timedelta()
通過計算每個點與數(shù)據(jù)集中最早日期的差值來轉(zhuǎn)換每個點的x值 。注意,代碼還使用labs()
為y軸 和標題設置了一個更具描述性的標簽。
運行該代碼顯示了這個圖。
在不改變數(shù)據(jù)的情況下,我們已經(jīng)使可視化更容易理解,對讀者更友好。該圖現(xiàn)在有更好的描述,X軸顯示了自1970年以來的經(jīng)過的年數(shù),而不是日期。
plotnine
提供了大量的標度轉(zhuǎn)換供你選擇,包括對數(shù)和其他非線性標度。
坐標系統(tǒng) -- 映射數(shù)據(jù)到二維空間 坐標系統(tǒng)定義了數(shù)據(jù)點如何被映射到圖中的二維圖形位置??梢园阉醋魇且粋€從數(shù)學變量到圖形位置的映射。選擇正確的坐標系統(tǒng)可以提高數(shù)據(jù)可視化的可讀性。
再來看看前面的例子,即用條形圖來統(tǒng)計屬于不同類別的車輛。用下面的代碼創(chuàng)建了該圖。
from plotnine.data import mpgfrom plotnine import ggplot, aes, geom_bar ggplot(mpg) + aes(x='class' ) + geom_bar()
該代碼使用 geom_bar()
為每一個車輛類別繪制一個條形圖。由于沒有設置特定的坐標系,因此使用了默認的坐標系。
運行該代碼會產(chǎn)生以下圖。
圖中每個條形的高度代表一個班級的車輛數(shù)量 雖然上述圖形沒有什么問題,但如果將軸線翻轉(zhuǎn),顯示水平條而不是垂直條,同樣的信息就會更直觀。
plotnine
提供了幾個函數(shù),可以修改坐標系統(tǒng),可以使用 coord_flip()
翻轉(zhuǎn)坐標軸。
from plotnine.data import mpgfrom plotnine import ggplot, aes, geom_bar, coord_flip ggplot(mpg) + aes(x='class' ) + geom_bar() + coord_flip()
該代碼使用 coord_flip()
翻轉(zhuǎn)了x軸和y軸。運行該代碼,我們會看到以下圖形。
這個圖形顯示了在前一個圖中看到的相同信息。通過翻轉(zhuǎn)坐標軸,它更容易理解和比較不同的條形。
關(guān)于哪個坐標系更好,沒有硬性規(guī)定。我們應該選擇最適合我們的問題和數(shù)據(jù)的那個。給他們一個嘗試,做一些實驗,以了解什么對每個案例有效。
分面 -- 同一畫布繪制多個數(shù)據(jù)子集 Facets
是 plotnine
最酷的功能之一,facets
允許我們按一些屬性對數(shù)據(jù)進行分組,然后在同一張畫布中單獨繪制每組數(shù)據(jù)。當我們想在同一個圖形中顯示兩個以上的變量時,這一點特別有用。
例如利用燃油經(jīng)濟性數(shù)據(jù)集(mpg
),并建立一個圖表,顯示每年每類車輛的每個發(fā)動機尺寸(排量)的每加侖里程。在這種情況下,我們的圖需要顯示四個變量的信息。
這里有個問題,我們的變量多于圖形的維度。如果必須顯示三個變量,我們可以使用三維視角,但四維圖形甚至很難想象。
此時可以使用一個兩步技巧來解決該問題。
首先,將數(shù)據(jù)劃分為若干組,其中一組中的所有數(shù)據(jù)點在某些屬性上有相同的值。 回到這個例子,可以按級別和年份對車輛進行分組,然后繪制每組的排量和每加侖英里數(shù)。下面的可視化圖是用這種技術(shù)生成的。
如圖所示,每組都有一個面板 。每個面板都顯示了屬于該車輛類別和年份的不同發(fā)動機排量的每加侖英里數(shù)。
代碼 from plotnine.data import mpgfrom plotnine import ggplot, aes, facet_grid, labs, geom_point ( ggplot(mpg) + facet_grid(facets='year~class' ) + aes(x='displ' , y='hwy' ) + labs( x='Engine Size' , y='Miles per Gallon' , title='Miles per Gallon for Each Year and Vehicle Class' , ) + geom_point() )
代碼使用 facet_grid()
按年份和車輛類別劃分數(shù)據(jù),并通過傳遞給它參數(shù) facet='year~class'
用于劃分的屬性。對于每個數(shù)據(jù)分區(qū),使用諸如aes、geom
和labs()
等組件來構(gòu)建繪圖。
facet_grid()
在一個網(wǎng)格中顯示分區(qū),用一個屬性表示行,另一個屬性表示列。plotnine
提供了其他分面方法,我們可以用兩個以上的屬性來劃分我們的數(shù)據(jù)。
主題 -- 改善可視化外觀 另外選擇一個非默認的主題,可使圖表更加美觀和充滿活力。
plotnine
包括幾個主題,這里我們選用黑暗主題繪制同上面一樣內(nèi)容的圖表。
from plotnine.data import mpgfrom plotnine import ggplot, aes, facet_grid, labs, geom_point, theme_dark ( ggplot(mpg) + facet_grid(facets='year~class' ) + aes(x='displ' , y='hwy' ) + labs( x='Engine Size' , y='Miles per Gallon' , title='Miles per Gallon for Each Year and Vehicle Class' , ) + geom_point() + theme_dark() )
在上面的代碼中,指定 theme_dark()
告訴 plotnine
使用黑暗主題來畫圖。下面是由這段代碼生成的圖形。
如圖所示,設置主題會影響顏色、字體和形狀樣式。
theme_xkcd()
是另一個常用的主題,一個非??岬穆嬍降耐庥^——它使數(shù)據(jù)可視化看起來像漫畫。
選擇新穎的主題可以幫助吸引觀眾的注意力。
到這里我們已經(jīng)了解了圖形語法的主要內(nèi)容,以及如何使用 plotnine 來構(gòu)建數(shù)據(jù)可視化。在Python中使用ggplot可以逐步 建立可視化,首先添加數(shù)據(jù),然后添加和調(diào)整組件以改善其圖形外面表現(xiàn)。
在下文中,云朵君將和大家一起學習如何使用顏色以及如何導出可視化圖表 。
多維度數(shù)據(jù)可視化 前面我們已經(jīng)了解到,顯示兩個以上的變量的數(shù)據(jù)會比較困難。那如何同時顯示三個變量,并用顏色來表示數(shù)值,接下來我們一起學習吧。
回到燃油經(jīng)濟性數(shù)據(jù)集(mpg),需要把發(fā)動機汽缸數(shù)和燃油效率之間的關(guān)系可視化,但也需要在同一個圖中包括車輛類別的信息。
作為分面的替代方法,可以用顏色來表示第三個變量的值。那我們就必須把發(fā)動機氣缸數(shù)映射到X軸上,把每加侖的里程數(shù)映射到Y(jié)軸上,然后用不同的顏色來代表車輛的等級。
下面的代碼創(chuàng)建了所述的數(shù)據(jù)可視化。
from plotnine.data import mpgfrom plotnine import ggplot, aes, labs, geom_point ( ggplot(mpg) + aes(x='cyl' , y='hwy' , color='class' ) + labs( x='Engine Cylinders' , y='Miles per Gallon' , color='Vehicle Class' , title='Miles per Gallon for Engine Cylinders and Vehicle Classes' , ) + geom_point() )
通過在aes
定義中傳遞 color='class'
,車輛類別被映射到圖形顏色。
運行該代碼會顯示這個圖形。
不同類別的車輛顯示不同的顏色 前文中,我們學習了另一種方法,即使用 Python 中的 ggplot 在圖形中顯示兩個以上的變量。當有三個變量時,應該在使用 facets
和 colors
之間做出選擇,這取決于哪種方法使數(shù)據(jù)的可視化更容易理解。
導出圖表文件 在某些情況下,需要以編程方式將生成的繪圖保存為圖像文件,而不是在Jupyter Notebook
中實時顯示它們。
plotnine
提供了一個非常方便的 save()
方法,可以將繪圖導出為圖像并保存到一個文件。例如,將圖形保存到一個名為 myplot.png
的文件中。
from plotnine.data import economicsfrom plotnine import ggplot, aes, geom_line myPlot = ggplot(economics) + aes(x='date' , y='pop' ) + geom_line() myPlot.save('myplot.png' , dpi=600 )
這里將數(shù)據(jù)可視化對象存儲在myPlot
中,然后調(diào)用save()
將圖形導出為圖像并存儲為myplot.png
。
在使用save()
時,我們可以調(diào)整一些圖像設置,如圖像的每英寸點數(shù)(dpi)
。當需要高質(zhì)量的圖像來包含在演示文稿或文章中時,這真的很有用。
plotnine
還包括一個將各種繪圖保存在單個PDF 文件中的方法。我們可以在 plotnine
的 save_as_pdf_pages
文檔中了解它并看到一些很酷的例子。
總結(jié) 在 Python 中使用 ggplot
可以讓我們以一種非常簡潔和一致的方式建立數(shù)據(jù)可視化。使用 plotnine
只需幾行代碼就可以做出復雜而漂亮的圖。
最后,如果你對該圖庫感興趣,可以看看 plotnine 的文檔 [4] ,繼續(xù)深入 Python 中的 ggplot,還可以訪問 plotnine 的圖庫 [5] 以獲得更多的想法和靈感。
https://plotnine./en/stable/gallery.html 參考資料 [1] ggplot2: https://ggplot2./
[2] plotnine datasets : https://plotnine./en/stable/api.html#datasets
[3] plotnine geoms: https://plotnine./en/stable/api.html#geoms
[4] plotnine 的文檔: https://plotnine./en/stable/index.html
[5] plotnine 的圖庫: https://plotnine./en/stable/gallery.html