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對象的數據向量直接傳遞給
x
,y
和hue
參數 - 在這種情況下,
x
,y
和hue
變量將決定數據的繪制方式。 - “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的傳統盒須圖。箱形圖和核密度估計的組合。