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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】参考ggplot2,Seaborn将迎来超大版本更新!

發布時間:2025/3/12 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】参考ggplot2,Seaborn将迎来超大版本更新! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最新消息,Seaborn將迎來API重寫級別版本更新,本文羅列重大改變,太值得期待了!

  • Matplotlib是Python最重要的可視化庫,但是,過于復雜,Seaborn對其主要功能做了封裝,隱藏復雜參數,僅需要幾行代碼就可以實現優美的統計圖,但功能有限:Seaborn;

  • 此次更新主要拓展Seaborn的核心功能 —與pandas的集成、數據和圖形之間的自動映射、統計轉換 — 使得Seaborn成為一個更具組合性、可擴展性和全面性的可視化庫。

  • 作者直言,更新靈感不少源于R語言中ggplot2背后的圖層圖形語法,去其糟粕,取其精華,做了很多優化,但是Seaborn不等于Python版ggplot2 (plotnine);

  • 為了這次更新,已經開發了8個月,依舊還有很多工作要做,更新版具體發布時間待定,但是會在發布前發布系列alpha/beta releases,以獲取測試反饋。


👇👇下面看看主要哪些方面發生了更新👇👇

嫌長文,直接看文章末尾小結。

基本語法

導入Seaborn

#方法一 import?seaborn.objects?as?so?#不再是import?seaborn?as?sns#方法二 from?seaborn.objects?import?*

繪圖主函數變成了seaborn.objects.Plot

import?seaborn tips?=?seaborn.load_dataset("tips")?#導入內置數據so.Plot(tips,?x="total_bill",?y="tip")?#繪制空Figure

add在Figure上添加散點圖層,

so.Plot(tips,?x="total_bill",?y="tip").add(so.Scatter())? #.add(so.Scatter())是不是有ggplot2?+?添加圖層的影子~

全局個性化,

so.Plot(tips).add(so.Scatter(),?x="total_bill",?y="tip")

每個圖層個性化,

(so.Plot(tips,?x="total_bill",?y="tip").add(so.Scatter(color=".6")).add(so.Scatter(),?data=tips.query("size?==?2")) )(so.Plot(tips,?x="total_bill",?y="tip",?color="day",?fill="time").add(so.Scatter(fillalpha=.8)) )

核心組件1-圖層對象Mark

每個圖層都需要一個Mark對象,它定義了如何繪制繪圖。將對應于現有seaborn功能和提供新功能的標記,但是,很多還沒有實現,

so.Plot(tips,?y="day",?x="total_bill") .add(so.Dot(color="#698",?alpha=.5))?#直接設置Mark(此處為Dot)特性,而不是映射它們.

核心組件2-數據轉換Stat

在新版本中,每個層都可以接受一個數據轉換的Stat對象,

so.Plot(fmri,?x="timepoint",?y="signal",?color="event").add(so.Line(),?so.Agg(),?group="subject")

自定義Mark和Stat對象

class?PeakAnnotation(so.Mark):def?_plot_split(self,?keys,?data,?ax,?kws):ix?=?data["y"].idxmax()ax.annotate("The?peak",?data.loc[ix,?["x",?"y"]],xytext=(10,?-100),?textcoords="offset?points",va="top",?ha="center",arrowprops=dict(arrowstyle="->",?color=".2"),)(so.Plot(fmri,?x="timepoint",?y="signal").add(so.Line(),?so.Agg()).add(PeakAnnotation(),?so.Agg()) )

核心組件3-圖形自適應the Move

新版本里,圖形的一些調整都匯聚在move對象中,取代老版本中的dodge=xx、jitter=xx、multiple=xx等設置,

(so.Plot(tips,?"day",?"total_bill",?color="time",?alpha="sex").add(so.Bar(),?so.Agg(),?move=so.Dodge()) )(so.Plot(tips,?"day",?"total_bill",?color="time",?alpha="smoker").add(so.Dot(),?move=[so.Dodge(by=["color"]),?so.Jitter(.5)]) )

個性化設置

新版本將添加更多圖形個性化設置功能,

(so.Plot(planets,?x="mass",?y="distance",?color="year").map_color("flare",?norm=(2000,?2010)).scale_numeric("x",?"log").add(so.Scatter(pointsize=3)) ) #以上設置順序不分先后(so.Plot(planets,?y="year",?x="orbital_period").scale_numeric("x",?"log").add(so.Scatter(alpha=.5,?marker="x"),?color="method").add(so.Line(linewidth=2,?color=".2"),?so.Agg(),?orient="h") )

子圖定義

新版本中分面Facet被隱式地內置,

(so.Plot(tips,?x="total_bill",?y="tip").facet("time",?order=["Dinner",?"Lunch"]).add(so.Scatter()) )

注意區別于老版本的FacetGrid,

(so.Plot(tips,?x="total_bill",?y="tip",?col="day").add(so.Scatter(color=".75"),?col=None).add(so.Scatter(),?color="day").configure(figsize=(7,?3)) )

新版本依舊包含PairGrid功能,

(so.Plot(tips,?y="day").pair(x=["total_bill",?"tip"]).add(so.Dot()) )

FacetGrid和PairGrid可聯合使用,

(so.Plot(tips,?x="day").facet("sex").pair(y=["total_bill",?"tip"]).add(so.Dot()) )

faceted和paired圖均可沿著列和行“wrapped”,

class?Histogram(so.Mark):??#?TODO?replace?once?we?implementdef?_plot_split(self,?keys,?data,?ax,?kws):ax.hist(data["x"],?bins="auto",?**kws)ax.set_ylabel("count")(so.Plot(tips).pair(x=tips.columns,?wrap=3).configure(sharey=False).add(Histogram()) )

總之,新版本中,“axes-level” 和“figure-level” 無差異。

圖形迭代、渲染

迭代:可定義一個基礎圖形,然后按需求在基礎圖形上繪制不同圖形,不同圖形之間相互獨立,

#定義基礎圖形p p?=?(so.Plot(fmri,?x="timepoint",?y="signal",?color="event").map_color(palette="crest") )p.add(so.Line())?#繪制折線圖p.add(so.Line(),?group="subject")

與Matplotlib集成

“axes-level”容易實現,可直接對子圖操作,

import?matplotlib?as?mpl _,?ax?=?mpl.figure.Figure(constrained_layout=True).subplots(1,?2) (so.Plot(tips,?x="total_bill",?y="tip").on(ax).add(so.Scatter()) )

“figure-level”??比較難纏,

f?=?mpl.figure.Figure(constrained_layout=True) (so.Plot(tips,?x="total_bill",?y="tip").on(f).add(so.Scatter()).facet("time") )

subfigures讓多子圖更簡單,

sf1,?sf2?=?f.subfigures(1,?2) (so.Plot(tips,?x="total_bill",?y="tip",?color="day").add(so.Scatter()).on(sf1).plot() ) (so.Plot(tips,?x="total_bill",?y="tip",?color="day").facet("day",?wrap=2).add(so.Scatter()).on(sf2).plot() )

小結

  • 如果該新版本發布,Seaborn老版本子圖難實現、個性化難、需要重度依賴Matplotlib的缺陷基本被修復;

  • 新版本吸收了ggplot2的部分屬性,對R用戶比較容易上手;

  • 但是,Seaborn支持圖形類別有限的問題沒有看到修復;

  • 再者,到底啥時候新版本能夠發布,This is very much a work in progress;

  • 總之,非常值得期待。

  • ref: https://seaborn.pydata.org/nextgen/


-END-

往期精彩回顧適合初學者入門人工智能的路線及資料下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載本站qq群955171419,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python】参考ggplot2,Seaborn将迎来超大版本更新!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: a色网站 | 亚洲欧美天堂网 | 日日干日日爽 | 亚洲一区a | 精品毛片在线观看 | 国产精品一区二区在线免费观看 | 最新在线中文字幕 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲激情欧美 | 欧洲av在线播放 | 欧美在线导航 | 深爱综合网 | 亚洲精品视频在线观看免费视频 | 中文字幕乱伦视频 | a级在线视频 | 欧美日韩电影一区 | 浮力影院国产第一页 | 久久久国产片 | 一本久久久久 | 久久午夜国产 | 伊人精品视频 | 午夜动态图 | 视频国产精品 | 亚洲精品视频一区二区三区 | 国产超碰av | 亚洲欧美伊人 | 亚洲天堂网视频 | 国产欧美日韩免费 | 日韩成人免费av | 色综合久久av | 尤果网福利视频在线观看 | 国产精品亚洲天堂 | 色香欲综合网 | 国产毛片儿 | 奇米网888| 亚洲美女黄色片 | 日韩在线资源 | 精品日日夜夜 | 韩国毛片一区二区三区 | 欧美色久 | 天天做天天爱夜夜爽 | 影音先锋中文字幕一区 | 久久a级片 | a√天堂在线 | 在线综合视频 | 年代下乡啪啪h文 | 国产一级二级视频 | bt天堂新版中文在线地址 | 午夜欧美精品 | 四虎激情 | 午夜美女视频 | 国产视频手机在线播放 | 好吊妞在线 | 五月婷婷基地 | 成人福利网站在线观看 | youjizz日本人 | 一区二区在线国产 | 亚洲一区www| 手机看片福利永久 | 三年中文在线观看中文版 | 欧美xxxx非洲 | 在线黄色大片 | 国产精品尤物视频 | 狂野欧美性猛交免费视频 | 亚洲蜜臀av一区二区三区 | 蜜臀久久 | 亚洲欧洲精品一区二区 | 久久艹免费视频 | 一女二男一黄一片 | 亚洲天堂自拍 | 亚洲精品欧美激情 | 日韩美女性生活 | av毛片在线免费观看 | 亚洲精品xxxx | 97影音| 奴性女会所调教 | 成人97| 久久精品欧美 | 亚洲中文字幕一区在线 | 国产精品乱码久久久久久 | 日韩mv欧美mv国产网站 | 五月天激情视频在线观看 | 蜜桃av噜噜 | 另类一区 | 毛片无遮挡高清免费观看 | 欧美专区第一页 | 久久国产精品一区二区三区 | 在线视频亚洲色图 | 欧美日韩在线免费看 | 91av毛片| 国产精品国产三级国产aⅴ浪潮 | 国产黄片毛片 | 国精产品一区一区三区mba下载 | 日韩人妻无码精品综合区 | 福利姬在线播放 | 美国毛片基地 | 久草操 | 好看的黄色网址 | 欧美怡红院视频一区二区三区 |