數據可視化(2)-Seaborn系列 | 散點圖scatterplot()

  • 2019 年 10 月 4 日
  • 筆記

本篇是《Seaborn系列》文章的第2篇-散點圖。

案例程式碼::歡迎給個star

https://github.com/Vambooo/SeabornCN

散點圖

解讀

可以通過調整顏色、大小和樣式等參數來顯示數據之間的關係。

函數原型

seaborn.scatterplot(x=None, y=None, hue=None,                      style=None, size=None, data=None,                      palette=None, hue_order=None, hue_norm=None,                      sizes=None, size_order=None, size_norm=None,                      markers=True, style_order=None, x_bins=None,                      y_bins=None, units=None, estimator=None,                      ci=95, n_boot=1000, alpha='auto', x_jitter=None,                      y_jitter=None, legend='brief', ax=None, **kwargs)

參數解讀

data: DataFrame    可選參數    x,y為數據中變數的名稱;  作用:對將生成具有不同顏色的元素的變數進行分組。可以是分類或數字.    size:數據中的名稱  作用:根據指定的名稱(列名),根據該列中的數據值的大小生成具有不同大小的效果。可以是分類或數字。    style:數據中變數名稱(比如:二維數據中的列名)  作用:對將生成具有不同破折號、或其他標記的變數進行分組。    palette:調試板名稱,列表或字典類型  作用:設置hue指定的變數的不同級別顏色。    hue_order:列表(list)類型  作用:指定hue變數出現的指定順序,否則他們是根據數據確定的。    hue_norm:tuple或Normalize對象    sizes:list dict或tuple類型  作用:設置線寬度,當其為數字時,它也可以是一個元組,指定要使用的最大和最小值,會自動在該範圍內對其他值進行規範化。

案例教程

import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例1:散點圖  """  sns.scatterplot( x="total_bill", y="tip",data=tips)  plt.show()
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例2:設置hue 根據設置的類別,產生顏色不同的點的散點圖  eg.下圖為根據time分類的散點圖  """  sns.scatterplot(x="total_bill", y="tip", hue="time",data=tips)  plt.show()
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例3:設置hue 根據設置的類別,產生顏色不同的點的散點圖,設置style,使其生成不同的標記的點  eg.下圖為hue與style設置相同的分類的散點圖  """  sns.scatterplot(x="total_bill", y="tip",hue="time", style="time", data=tips)  plt.show()
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例4:設置hue 根據設置的類別,產生顏色不同的點的散點圖,設置style,使其生成不同的標記的點  eg.下圖為hue與style設置不同的分類的散點圖  """  sns.scatterplot(x="total_bill", y="tip",hue="day", style="time", data=tips)  plt.show()
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例5:設置size ,根據設置的類別,產生大小不同的點的散點圖  """  sns.scatterplot(x="total_bill", y="tip", size="time",data=tips)  plt.show()
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例6:同時設置hue和size,根據設置的類別,產生顏色和大小不同的點的散點圖  """  sns.scatterplot(x="total_bill", y="tip",hue="time", size="time",data=tips)  plt.show()
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例7:同時設置hue和size,根據設置的類別,產生顏色和大小不同的點的散點圖  不過這裡的顏色使用的是Set2中的,palette="Set2",  """  sns.scatterplot(x="total_bill", y="tip",                  hue="day", size="smoker",                  palette="Set2",                  data=tips)  plt.show()
image.png
import matplotlib.pyplot as plt  import seaborn as sns;  sns.set()  tips = sns.load_dataset("tips")  """  案例8:使用指定的標記  """  markers = {"Lunch": "s", "Dinner": "X"}  sns.scatterplot(x="total_bill", y="tip", style="time",                  markers=markers,                  data=tips)  plt.show()
image.png
import numpy as np  import pandas as pd  import matplotlib.pyplot as plt  import seaborn as sns;  plt.close("all")  sns.set()  """  案例10:利用pandas構建時間序列數據,從2000-1-31開始,以月為頻率,生成100條時間序列  """  index = pd.date_range("2000-1-11", periods=100,                        freq="m", name="date")  data = np.random.randn(100, 4).cumsum(axis=0)  wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])  sns.scatterplot(data=wide_df)  plt.show()

案例地址

案例程式碼已上傳:https://github.com/Vambooo/SeabornCN

整理製作:數據分析與可視化學研社

更多分享,請關注公眾號