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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库

發(fā)布時(shí)間:2023/12/1 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

騰訊課堂 | Python網(wǎng)絡(luò)爬蟲(chóng)與文本數(shù)據(jù)分析

同樣的基本作圖任務(wù),plotnine比matplotlib和seaborn代碼量少,更美觀。所以我又重新發(fā)一遍,大家可以先收藏起來(lái),后面總有用到的時(shí)候~

R語(yǔ)言的ggplot2繪圖能力超強(qiáng),python雖有matplotlib,但是語(yǔ)法臃腫,使用復(fù)雜,入門極難,seaborn的出現(xiàn)稍微改善了matplotlib代碼量問(wèn)題,但是定制化程度依然需要借助matplotlib,使用難度依然很大。

而且咱們經(jīng)管專業(yè)學(xué)編程語(yǔ)言,一直有一個(gè)經(jīng)久不衰的問(wèn)題-“學(xué)數(shù)據(jù)分析,到底選擇R還是Python”。通過(guò)plotnine這個(gè)庫(kù),你就可以在python世界中體驗(yàn)下R語(yǔ)言的新奇感,體驗(yàn)可視化之美,如果著迷上癮,再學(xué)R也不遲。

plotnine包,可以實(shí)現(xiàn)絕大多數(shù)ggplot2的繪圖功能,兩者語(yǔ)法十分相似,R和Python的語(yǔ)法轉(zhuǎn)換成本大大降低。

  • plotnine文檔 https://plotnine.readthedocs.io/en/latest/
  • R語(yǔ)言ggplot2文檔 https://ggplot2.tidyverse.org/reference/index.html

安裝

pip?install?plotnine

準(zhǔn)備數(shù)據(jù)

from?plotnine.data?import?mpg

#dataframe
mpg.head()
manufacturermodeldisplyearcyltransdrvctyhwyflclass01234
audia41.819994auto(l5)f1829pcompact
audia41.819994manual(m5)f2129pcompact
audia42.020084manual(m6)f2031pcompact
audia42.020084auto(av)f2130pcompact
audia42.819996auto(l5)f1626pcompact

快速作圖qplot

我們先直接看最簡(jiǎn)單好用的快速作圖函數(shù)qplot(x, y, data)

  • 橫坐標(biāo)displ
  • 縱坐標(biāo)cty
  • 數(shù)據(jù)mpg
from?plotnine?import?qplot

qplot(x='displ',?
??????y='cty',
??????data=mpg)


ggplot圖層

qplot是快速作圖函數(shù),如果想讓圖更好看,進(jìn)行私人訂制,那么我們需要進(jìn)行圖層設(shè)計(jì)

首先設(shè)置ggplot圖層(相當(dāng)于買了一個(gè)高級(jí)畫(huà)布),

  • 數(shù)據(jù)mpg
  • 橫坐標(biāo)x軸為displ
  • 縱坐標(biāo)y軸cty

在plotnine中,變量所對(duì)應(yīng)的數(shù)據(jù)均可通過(guò)字段名調(diào)用

from?plotnine?import?ggplot,?geom_point,?aes

ggplot(aes(x='displ',?y='cty'),?mpg)


圖層疊加

我們可以看到,已經(jīng)繪制出一個(gè)空的ggplot圖層,x軸為displ,y軸為cty。

接下來(lái)我們給這個(gè)圖層上加上數(shù)據(jù)對(duì)應(yīng)的散點(diǎn),使用geom_point()直接追加在ggplot圖層之上即可。

(
????ggplot(aes(x='displ',?y='cty'),?mpg)
????+?geom_point()
)


color

在上圖中,散點(diǎn)是沒(méi)有區(qū)分每輛車的氣缸數(shù)cyl。

在geom_point()中,我們可以按照氣缸數(shù)cyl分門別類,按照顏色顯示出來(lái)

(
????ggplot(aes(x='displ',?y='cty'),?mpg)
????+?geom_point(aes(color='cyl'))
)


上圖挺好看的,有時(shí)候需要繪制的字段是離散型數(shù)值,但是上色后可能不夠明顯,需要聲明該字段為離散型。這時(shí)候用factor()來(lái)告訴plotnine,這個(gè)字段是離散型數(shù)值

(
????ggplot(aes(x='displ',?y='cty'),?mpg)
????+?geom_point(aes(color='factor(cyl)'))?
)



size

有時(shí)候?yàn)榱嗽黾涌梢暬@示的維度數(shù),還可以考慮加入點(diǎn)的大小size

(
????ggplot(aes(x='displ',?y='cty'),?mpg)
????+?geom_point(aes(size='hwy'))
)



梯度色

如果你想自己設(shè)置顏色的梯度,可以通過(guò)scale_color_gradient設(shè)置

from?plotnine?import?scale_color_gradient

(
????ggplot(aes(x='displ',?y='cty'),?mpg)
????+?geom_point(aes(color='hwy'))
????+?scale_color_gradient(low='blue',?high='red')
)


條形圖

plotnine中可繪制的圖有很多,剛剛已經(jīng)講了散點(diǎn)圖,接下來(lái)我們看看plotnine中的條形圖。

首先準(zhǔn)備一下數(shù)據(jù)

import?pandas?as?pd

df?=?pd.DataFrame({
????'variable':?['gender',?'gender',?'age',?'age',?'age',?'income',?'income',?'income',?'income'],
????'category':?['Female',?'Male',?'1-24',?'25-54',?'55+',?'Lo',?'Lo-Med',?'Med',?'High'],
????'value':?[60,?40,?50,?30,?20,?10,?25,?25,?40],
})
df['variable']?=?pd.Categorical(df['variable'],?categories=['gender',?'age',?'income'])
df['category']?=?pd.Categorical(df['category'],?categories=df['category'])

df
variablecategoryvalue012345678
genderFemale60
genderMale40
age1-2450
age25-5430
age55+20
incomeLo10
incomeLo-Med25
incomeMed25
incomeHigh40
from?plotnine?import?ggplot,?aes,?geom_text,?position_dodge,?geom_point

#調(diào)整文本位置
dodge_text?=?position_dodge(width=0.9)??????????????????????????????#?new

(
????ggplot(df,?aes(x='variable',?
???????????????????y='value',?
???????????????????fill='category'))?#類別填充顏色
????+?geom_col(position='dodge',?
???????????????show_legend=False)???#?modified
????+?geom_text(aes(y=-.5,?label='category'),??????????????????????????#?new
????????????????position=dodge_text,
????????????????color='gray',??#文本顏色
????????????????size=8,???#字號(hào)
????????????????angle=30,?#文本的角度
????????????????va='top')
????
?+?lims(y=(-5,?60))?????????????????????????????????????????????????#?new
)


from?plotnine.data?import?economics_long

economics_long.head()
datevariablevaluevalue0101234
1967-07-01pce507.40.000000
1967-08-01pce510.50.000266
1967-09-01pce516.30.000764
1967-10-01pce512.90.000472
1967-11-01pce518.10.000918
from?plotnine?import?ggplot,?aes,?geom_line

(
????ggplot(economics_long,?aes(x='date',?y='value01',?color='variable'))
????+?geom_line()
)


plotnine目前已經(jīng)支持絕大多數(shù)ggplot2,但是文檔方面沒(méi)有g(shù)gplot2全,所以學(xué)習(xí)plotnine時(shí)可以參考ggplot2。

  • plotnine文檔 https://plotnine.readthedocs.io/en/latest/
  • R語(yǔ)言ggplot2文檔 https://ggplot2.tidyverse.org/reference/index.html

往期文章

[更新] Python網(wǎng)絡(luò)爬蟲(chóng)與文本數(shù)據(jù)分析?rpy2庫(kù) | 在jupyter中調(diào)用R語(yǔ)言代碼plydata庫(kù) | 數(shù)據(jù)操作管道操作符>>tidytext | 耳目一新的R-style文本分析庫(kù)七夕禮物 | 全網(wǎng)最火的釘子繞線圖制作教程讀完本文你就了解什么是文本分析文本分析在經(jīng)管領(lǐng)域中的應(yīng)用概述??綜述:文本分析在市場(chǎng)營(yíng)銷研究中的應(yīng)用plotnine: Python版的ggplot2作圖庫(kù)小案例: Pandas的apply方法??stylecloud:簡(jiǎn)潔易用的詞云庫(kù)?用Python繪制近20年地方財(cái)政收入變遷史視頻??Wow~70G上市公司定期報(bào)告數(shù)據(jù)集漂亮~pandas可以無(wú)縫銜接Bokeh??YelpDaset: 酒店管理類數(shù)據(jù)集10+G??

公眾號(hào)后臺(tái)回復(fù)關(guān)鍵詞【plotnine入門】即可下載本文數(shù)據(jù)代碼

分享”和“在看”是更好的支持!

總結(jié)

以上是生活随笔為你收集整理的r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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