Python-seaborn 基礎圖表繪製-散點圖

2021-03-02 DataCharm

上期推文推出第一篇基礎圖表繪製-R-ggplot2 基礎圖表繪製-散點圖 的繪製推文,得到了很多小夥伴的喜歡,也是我更加想使這個系列做的更加完善和系統,我之前也有說過,會推出Python和R的兩個版本繪製教程,接下來我們就推出基礎散點圖的Python繪製版本。本期主要涉及的知識點如下:

Python-seaborn 繪製多類別散點圖

由於涉及的圖表類型為多類別散點圖的繪製,在使用常規matplotlib進行繪製時會顯得格外繁瑣,所以我們選擇了對matplotlib進行了更高級的API封裝,使作圖更加容易的seaborn包進行圖表的繪製,更多seaborn 介紹,大家可以直接去seaborn官網進行相關資料的查閱。數據的讀取使用的功能強大的數據處理包 pandas ,這裡只是進行簡單的刪除空值操作,直接使用dropna() 函數操作即可,我們直接預覽數據,如下(部分):由於我們直接使用了seaborn進行圖表的繪製,繪圖代碼也得到了極大的簡化,默認的繪圖代碼如下:

fig, ax = plt.subplots(figsize=(6,5),dpi=200)
scatter = sns.scatterplot(data=penguins_df,x="bill_length_mm",y="bill_depth_mm",hue="species",
                          size="body_mass_g",ec="k",alpha=.9,ax=ax)
scatter.legend()
ax.text(.91,-.1,'\nVisualization by DataCharm',transform = ax.transAxes,
        ha='center', va='center',fontsize = 7,color='black')

可視化效果如下:

這配色、這布局······,這個圖表中主要存在如下問題:

針對以上幾個問題,接下來我們對其進行美化操作。

seaborn 定製化美化操作

詳細的美化操作對於seaborn來說,代碼過多,且需記住的繪圖函數也較多,這裡和R-ggplot2 繪圖一樣,我們直接選擇matplotlib 繪圖主題進行設置即可,此外,我們還對圖例等圖元素進行設置,具體代碼如下:

plt.rcParams["font.family"] = "Arial-Narrow"
palette = ("#FF8C00", "#A034F0", "#159090")
plt.style.use('fivethirtyeight')
fig, ax = plt.subplots(figsize=(6,5),dpi=200)
scatter = sns.scatterplot(data=penguins_df,x="bill_length_mm",y="bill_depth_mm",hue="species",size="body_mass_g",
                    palette=palette,ec="white",alpha=.9,ax=ax)

#自定義圖例設置
handles,labels = scatter.get_legend_handles_labels()
labels_size =  labels[5:]
labels_size = [str(int(i)/1000)+" kg" for i in labels_size]

scatter.legend(handles=handles[1:4] + handles[5:], labels=labels[1:4] + labels_size ,ncol=1,loc="lower right",
               frameon=False,fontsize=7,markerscale=1,bbox_to_anchor=(1, 0.0))

scatter.set_xlabel("Bill length (mm)")
scatter.set_ylabel("Bill depth (mm)")

#添加標題
ax.text(-.08,1.1,"Base Charts in Python Exercise 01: Point Charts",
       transform = ax.transAxes,color='k',ha='left',va='center',size=15,fontweight='extra bold')

ax.text(.91,-.1,'\nVisualization by DataCharm',transform = ax.transAxes,
        ha='center', va='center',fontsize = 7,color='black')

plt.show()

這裡注意以下幾點:

plt.style.use('fivethirtyeight')

這樣就選擇了對應的繪圖主題。

handles,labels = scatter.get_legend_handles_labels()
labels_size =  labels[5:]
labels_size = [str(int(i)/1000)+" kg" for i in labels_size]

scatter.legend(handles=handles[1:4] + handles[5:], labels=labels[1:4] + labels_size ,ncol=1,loc="lower right",
               frameon=False,fontsize=7,markerscale=1,bbox_to_anchor=(1, 0.0))

該部分代碼就實現了圖例的定製化操作,具體包括:圖例元素選擇、位置以及排列方式等.

這裡指出一下:由於seaborn是對matplotlib的高度封裝,這也導致其對個別圖表元素的定製化設置就相對較難(如圖例)

最終的可視化效果如下:

當然我們還可以將圖例放置在上方並排顯示,對應修改代碼如下:

scatter.legend(handles=handles[1:4] + handles[5:], labels=labels[1:4] + labels_size ,ncol=8,loc="upper center",
               frameon=False,fontsize=7,markerscale=1,bbox_to_anchor=(0.5, 1.03))

可視化效果如下:

總結

本期推文我們推出了基礎散點圖的Python繪製版本,希望可以滿足喜歡使用Python繪圖的小夥伴。大家有啥意見也可以在文末 讀者討論 區進行談論交流啊。




相關焦點

  • Python-matplotlib: 散點圖的繪製
    本文涉及的數據主要包括兩種,一種為全球各大洲的網格數據,用於繪製另類散點圖例,一種為全球各州的教育水平的師生比例,用於散點圖的繪圖。各大洲的網格數據如下(部分):如紅框所示,為所需要的數據,用於繪圖。本文的可視化繪製過程涉及seaborn的stripplot()方法,所需的庫、總體設置及用於繪製「抖動」的散點圖(類似ggplot2的position_jitter()),其目的就是為了防止散點重疊。
  • Python-matplotlib 學術型散點圖繪製
    本期推文只要介紹學術散點圖的繪製教程,涉及的內容主要還是matplotlib散點圖的繪製,只不過添加了相關性分析,擬合關係式和顏色映射散點密度(大多數的英文文章中多出現此類圖表
  • Python-seaborn 基礎圖表繪製-柱形圖(數據分享)
    上期介紹了使用R-ggplot繪製基礎柱形圖的繪製推文,本期按照慣例,我們繼續推出Python 版本的繪製方法,當然我們也是經過美化修飾的結果,畢竟要自己看的過去才行。本期推文主要涉及的知識點如下:Matplotlib inset_locator.inset_axes()自由添加圖片元素Python-seaborn繪製統計直方圖在使用基礎的matplotlib雖然也能繪製出直方統計圖,但面對多類別數據則顯得較為蠻煩,基本系列課程的目的是為了大家系統掌握各種圖表的繪製方法
  • seaborn關聯圖表之折線圖和散點圖
    折線圖和散點圖是最常用的展示兩個變量間關係的圖表,在seaborn中,通過以下兩個函數來繪製對應的圖形1. satterplot, 繪製散點圖
  • python數據科學系列:seaborn入門詳細教程
    這是一個基於matplotlib進行高級封裝的可視化庫,相比之下,繪製圖表更為集成化、繪圖風格具有更高的定製性。教程目錄seaborn是python中的一個可視化庫,是對matplotlib進行二次封裝而成,既然是基於matplotlib,所以seaborn的很多圖表接口和參數設置與其很是接近。
  • 用Seaborn繪製圖表
    Seaborn可以很好地處理數據幀,而Matplotlib則不行,它可以讓你以更簡單的方式繪製引人注目的圖表。使用seaborn和Pokemon(口袋妖怪)數據集的屬性,我們將創建一些非常有趣的可視化效果。我們首先要看的是散點圖。散點圖散點圖使用點來表示不同數值變量的值。每個點在水平軸和垂直軸上的位置表示單個數據點的值。它們用於觀察變量之間的關係。
  • Python數據可視化—Seaborn
    今天為大家分享的小技巧是python的可視化畫圖庫Seaborn。相信很多小俠客用過matplotlib、pyecharts等可視化庫,可是為什麼還要介紹Seaborn呢?因為它修復了上述兩個庫的一些缺點,比如Seaborn提供了大量的高級接口和自定義主題,而matplotlib沒有這些接口使得很難確定哪些設置來自定義圖表。
  • 用數據可視化工具Seaborn繪製圖表
    Seaborn可以很好地處理數據幀,而Matplotlib則不行,它可以讓你以更簡單的方式繪製引人注目的圖表。為了更好地理解本文,你需要了解pandas和matplotlib的基礎知識。使用seaborn和Pokemon(口袋妖怪)數據集的屬性,我們將創建一些非常有趣的可視化效果。我們首先要看的是散點圖。散點圖散點圖使用點來表示不同數值變量的值。每個點在水平軸和垂直軸上的位置表示單個數據點的值。它們用於觀察變量之間的關係。
  • Python-seaborn 經濟學人經典圖表仿製
    上篇原創推文使用了R-ggplot2 實現了經濟學人經典的圖表仿製實現R-ggplot2 經典經濟學人圖表仿製,所以這期呢,我們就使用Python-seaborn實現這個經典的經濟學人圖表再現。主要涉及的知識點如下:Python-seaborn regplot回歸線性擬合圖繪製Python-seaborn 繪製擬合線圖首先,我們預覽下數據(部分):
  • Python可視化 | Seaborn經濟學人經典圖表仿製
    上篇原創推文使用了R-ggplot2 實現了經濟學人經典的圖表仿製實現R-ggplot2 經典經濟學人圖表仿製,所以這期呢,我們就使用Python-seaborn實現這個經典的經濟學人圖表再現。主要涉及的知識點如下:Python-seaborn regplot回歸線性擬合圖繪製Python-seaborn 繪製擬合線圖首先,我們預覽下數據(部分):其中Region_new 列則是根據相關要求更改的新列,作圖也是以次數據為基礎的。
  • 【數據可視化】統計圖繪製神器:Seaborn
    若要直觀地反應一組數據的統計特徵,一圖勝過千萬言語。近期小編有若干統計圖需要繪製,在學習的過程中發現了一個很好用的工具,它可以簡單直觀地繪製出常用的統計圖。它就是Seaborn庫。Seaborn是基於Matplotlib開發的高階Python數據可視化圖庫。用戶能夠做出各種有吸引力的統計圖表,例如條形圖、散點圖、箱線圖等。
  • 百川歸海,四類圖統攬統計圖:Seaborn|可視化系列03
    可通過palette及hue_norm/hue_order等參數進行定義;•kind:繪製圖表的類型,relplot有兩種選擇,分別為"scatter"和"line",默認是散點圖,也即scatter;•style:映射不同的散點形狀,圓形、三角形、十字等,容易想到ax.plot()裡的標記字符fmt;•palette:調色板,指定hue的顏色映射用;•size:映射散點的大小;•sizes:控制散點大小的範圍
  • 使用Pandas,Seaborn和Plotly繪製漂亮的圖表
    Left chart: Histogram and kernel density estimation of 「Life Ladder」 for Asian countries in 2018; Ri繪製雙變量分布每當我想直觀地探索兩個或多個變量之間的關係時,通常都會歸結為某種形式的散點圖和分布評估
  • 推薦: 一本「高顏值」的Python語言數據可視化圖書
    所以很有必要系統性地介紹python的繪圖語法系統,包括最基礎也最常用的matplotlib包、常用於統計分析的seaborn、最新出現類似R ggplot2語法的plotnine以及用於地理空間數據可視化的basemap包。在先介紹數據可視化基礎理論後,本書系統性地介紹了幾乎所有常見的二維和三維圖表的繪製方法,包括簡單的柱形圖系列、條形圖系列、折線圖系列,地圖系列等。
  • Python數據可視化(一):散點圖繪製
    輸入數據格式image.png使用matplotlib包繪製散點圖# 導入所需的python包import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns# 設置繪圖格式
  • Python數據可視化-seaborn Iris鳶尾花數據
    導入庫讀取數據數據欄位介紹:在做categorical visualization的時候,seaborn給出了基礎的stripplot & swarmplot, boxplot &StripplotStripplot的本質就是把數據集中具有quantitative屬性的變量按照類別去做散點圖(Scatterplot)。我們將紙鳶花數據集中不同種類花的sepal length做stripplot可視化上邊左側的圖片便是在默認風格下用stripplot繪製的散點圖。
  • 我用Python的Seaborn庫,繪製了17個超好看圖表!
    散點圖常規散點圖:scatterplot#語法'''seaborn.scatterplot(x=None, y=None, hue=None, style=None分簇散點圖:stripplot#語法'''seaborn.stripplot(x=None, y=None, hue=None, data=None, order
  • python-數據分布型圖表-箱形圖系列-多數據系列箱形圖
    );使用position=position_dodge(width)控制箱形之間間隔;使用geom_jitter()函數添加抖動散點圖;通過position=position_jitter(width,heigth)使散點沿著箱形中心線分布;雙數據系列小提琴圖,只需要保留兩個小提琴圖的一半;使得左邊為一個數據的核密度估計曲線圖;
  • Python Seaborn綜合指南,成為數據可視化專家
    在這裡,我們將使用seaborn生成以下圖:Scatter plot (散點圖)SNS.relplotHue plot (Hue圖)我選擇了預測投票數數據集。使用Seaborn繪製散點圖散點圖可能是可視化兩個變量之間關係的最常見的例子。每個點在數據集中顯示一個觀察值,這些觀察值用點狀結構表示。圖中顯示了兩個變量的聯合分布。
  • 長文乾貨|數據可視化必備Python Seaborn綜合指南,一文搞定可視化!
    在這裡,我們將使用seaborn生成以下圖:Scatter plot (散點圖)SNS.relplotHue plot (Hue圖)我選擇了預測投票數數據集。使用Seaborn繪製散點圖散點圖可能是可視化兩個變量之間關係的最常見的例子。每個點在數據集中顯示一個觀察值,這些觀察值用點狀結構表示。圖中顯示了兩個變量的聯合分布。