數據可視化實例(七): 計數圖(matplotlib,pandas)


https://datawhalechina.github.io/pms50/#/chapter5/chapter5

計數圖 (Counts Plot)

避免點重疊問題的另一個選擇是增加點的大小,這取決於該點中有多少點。 因此,點的大小越大,其周圍的點的集中度越高。

導入所需要的庫

import numpy as np
# 導入pandas庫
import pandas as pd
# 導入matplotlib庫
import matplotlib as mpl
import matplotlib.pyplot as plt
# 導入seaborn庫
import seaborn as sns
# 在jupyter notebook顯示圖像
%matplotlib inline

設定圖像各種屬性

large = 22; med = 16; small = 12
            # 設置子圖上的標題字體
params = {'axes.titlesize': large,  
            # 設置圖例的字體
          'legend.fontsize': med,
            # 設置圖像的畫布
          'figure.figsize': (16, 10),  
            # 設置標簽的字體
          'axes.labelsize': med, 
            # 設置x軸上的標尺的字體
          'xtick.labelsize': med,  
            # 設置整個畫布的標題字體
          'ytick.labelsize': med,  
          'figure.titlesize': large}  
# 更新默認屬性
plt.rcParams.update(params)  
 # 設定整體風格
plt.style.use('seaborn-whitegrid')
# 設定整體背景風格
sns.set_style("white")  

# step1:導入數據

df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")
    # groupby__可對具有相同'hwy','cty'進行分組
    # size__返回元素的數量
    # reset_index__重新設置連續的行索引index
        # name_計數的列名
df_counts = df.groupby(['hwy', 'cty']).size().reset_index(name = 'counts')

# step2:繪畫 Stripplot

    # 設置畫布
fig, ax = plt.subplots(figsize = (12, 8), dpi = 80)
              # 橫坐標
sns.stripplot(df_counts.cty,
              # 縱坐標
              df_counts.hwy,
              # 尺寸
              size = df_counts.counts * 2,
              # 子圖
              ax = ax)

# step3:裝飾

    # 添加標題
plt.title('Counts Plot - Size of circle is bigger as more points overlap', fontsize=22)
    # 顯示圖像
plt.show()

 

seaborn.stripplot(x=None, y=None, hue=None, 
data=None, order=None, hue_order=None, jitter=True, dodge=False, 
orient=None, color=None, palette=None, size=5, edgecolor='gray', linewidth=0, ax=None, **kwargs)

繪制一個散點圖,其中一個變量是分類。

條形圖可以單獨繪制,但如果您想要顯示所有觀察結果以及底層分布的某些表示,它也是一個盒子或小提琴圖的良好補充。

輸入數據可以以多種格式傳遞,包括:

  • 表示為列表,numpy數組或pandas Series對象的數據向量直接傳遞給xyhue參數
  • 在這種情況下,xyhue變量將決定數據的繪制方式。
  • “wide-form” DataFrame, 用於繪制每個數字列。
  • 一個數組或向量列表。

在大多數情況下,可以使用numpy或Python對象,但最好使用pandas對象,因為關聯的名稱將用於注釋軸。另外,您可以使用分組變量的分類類型來控制繪圖元素的順序。

此函數始終將其中一個變量視為分類,並在相關軸上的序數位置(0,1,... n)處繪制數據,即使數據具有數字或日期類型也是如此。

有關更多信息,請參閱教程

參數:x, y, hue: 數據或矢量數據中的變量名稱,可選

用於繪制長格式數據的輸入。查看解釋示例。

data:DataFrame, 數組, 數組列表, 可選

用於繪圖的數據集。如果 x 和 y 不存在,則將其解釋為寬格式。否則預計它將是長格式的。

order, hue_order:字符串列表,可選

命令繪制分類級別,否則從數據對象推斷級別。

jitter:float, True/1 是特殊的,可選

要應用的抖動量(僅沿分類軸)。 當您有許多點並且它們重疊時,這可能很有用,因此更容易看到分布。您可以指定抖動量(均勻隨機變量支持的寬度的一半),或者僅使用True作為良好的默認值

dodge:bool, 可選

使用 hue 嵌套時,將其設置為 True 將沿着分類軸分離不同色調級別的條帶。否則,每個級別的點將相互疊加。

orient:“v” | “h”, 可選

圖的方向(垂直或水平)。這通常是從輸入變量的dtype推斷出來的,但可用於指定“分類”變量何時是數字或何時繪制寬格式數據。

color:matplotlib顏色,可選

所有元素的顏色,或漸變調色板的種子。

palette:調色板名稱,列表或字典,可選

用於色調變量的不同級別的顏色。應該是 color_palette(), 可以解釋的東西,或者是將色調級別映射到matplotlib顏色的字典。

size:float, 可選

標記的直徑,以磅為單位。(雖然 plt.scatter 用於繪制點,但這里的 size 參數采用“普通”標記大小而不是大小^ 2,如 plt.scatter 。

edgecolor:matplotlib顏色,“灰色”是特殊的,可選的

ax:matplotlib軸,可選

返回Axes對象,並在其上繪制繪圖。

返回值:ax:matplotlib軸

返回Axes對象,並在其上繪制繪圖。

也可參看

分類散點圖,其中點不重疊。可以與其他圖一起使用來顯示每個觀察結果。帶有類似API的傳統盒須圖。箱形圖和核密度估計的組合。

https://www.cntofu.com/book/172/docs/14.md


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM