Python數據可視化(-)Seaborn介紹

提升你的洞察的最好方法之一是通過可視化你的數據:這樣,你可以更容易地識別模式,掌握到困難的概念以及注意到關鍵的要素,當你使用數據科學中的Python時,你很有可能已經用了Matplotlib,一個供你創建高質量圖像的2D庫。另一個免費的可視化庫是Seabon,他提供了一個繪制統計圖形的高級接口。

這篇文章覆蓋了大部分常見問題,當用戶開始用Seaborn庫的時候,下面有多少問題,你能正確地回答。
1. 用Seaborn VS Matplotlib ?
2.如何裝載數據來構建Seaborn點
2.1加載內置數據集
2.2 加載Pandas DataFrame數據集
3.如何顯示Seaborn點
4.如何在默認matplotlib的情況下,使用Seaborn
5.如何調整Seaborn的上下文環境
6.如何調整圖像樣式
7.如何旋轉標簽文字
8.如何設置X/Y坐標
9.如何設置刻度
10.如何添加標題
如果對Matplotlib及Seaborn感興趣的話,請參加DataCamp的課程Introduction to Data Visualization with Python.

Seaborn vs Matplotlib

正如你所知道的,Seaborn是比Matplotlib更高級的免費庫,特別地以數據可視化為目標,但他要比這一切更進一步:他解決了用Matplotlib的2個最大問題,正如Michael Waskom所說的:Matplotlib試著讓簡單的事情更加簡單,困難的事情變得可能,那么Seaborn就是讓困難的東西更加簡單。

用Matplotlib最大的困難是其默認的各種參數,而Seaborn則完全避免了這一問題。

    # Import the necessary libraries
    import matplotlib.pyplot as plt
    import pandas as pd

    # Initialize Figure and Axes object
    fig, ax = plt.subplots()

    # Load in data
    tips =   pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")

    # Create violinplot
    ax.violinplot(tips["total_bill"], vert=False)

    # Show the plot
    plt.show()
001.png
      # Import the necessary libraries
      import matplotlib.pyplot as plt
      import pandas as pd
      import seaborn as sns

      # Load the data
      tips =       pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")

      # Create violinplot
      sns.violinplot(x = "total_bill", data=tips)

      # Show the plot
      plt.show()
002.png

Matplotlib的默認風格,通常不會增加顏色以及坐標軸的刻度標簽以及樣式。
而且Seaborn是Matplotlib的延伸和擴展,如果你知道Matplotlib,你就已經掌握了Seaborn的大部分;

如何加載數據構建Seaborn圖像

當您使用Seaborn時,您可以使用庫本身提供的內置數據集之一,也可以加載Pandas DataFrame。

裝載內置海床數據集

要開始使用內置的Seaborn數據集,可以使用load_dataset()函數。 要查看內置的所有數據集,請點擊此處查看 https://github.com/mwaskom/seaborn-data 。 請查看以下示例來查看load_dataset()函數的工作原理

      # Import necessary libraries
      import seaborn as sns
      import matplotlib.pyplot as plt

      # Load iris data
      iris = sns.load_dataset("iris")

      # Construct iris plot
      sns.swarmplot(x="species", y="petal_length", data=iris)

     # Show plot
      plt.show()
Figure3.png
加載您自己的DataFrame數據集

當然,數據可視化的大部分場景您將使用自己的數據,而不是Seaborn庫的內置數據集。 Seaborn最適用于包含整個數據集的Pandas DataFrames和數組

DataFrames是一種在矩形網格中存儲數據的方法,DataFrame的行不需要包含相同類型的值:它們可以是數字,字符,邏輯等。特別是對于Python,DataFrames集成于Pandas庫中,它們被定義為具有潛在不同類型的列的二維標記數據結構。

Seaborn對DataFrames非常好的原因是,因為DataFrames的標簽會自動傳播到繪圖或其他數據結構,正如本教程的第一個示例所示,您在Seaborn中繪制了一個小提琴。在那里,你看到x軸有一個傳說total_bill,而Matplotlib圖則不是這樣。這已經需要很多工作了。

但這并不意味著所有的工作都完成了 - 恰恰相反。在許多情況下,您仍然需要操作您的Pandas DataFrame,以使繪圖正確呈現。如果您想了解更多信息,請查看DataCamp的Python中的DataFrames Pandas教程或Pandas Foundations課程

Matplotlib仍然是Seaborn的基礎,這意味著結構仍然是一樣的,您需要使用plt.show()使圖像顯示給您。 您可能已經從本教程上一個示例中看到過。 在任何情況下,這里是另一個例子,其中show()函數用于顯示繪圖

    # Import necessarily libraries
    import matplotlib.pyplot as plt
    import seaborn as sns

    # Load data
    titanic = sns.load_dataset("titanic")

    # Set up a factorplot
    g = sns.factorplot("class", "survived", "sex", data=titanic, kind="bar",         palette="muted", legend=False)
               
    # Show plot
    plt.show()

如何使用Seaborn用Matplotlib的默認值

也有很多相反的場景,即那些使用Seaborn并希望用Matplotlib默認設置的問題。

之前,您可以通過從Seaborn包導入apionly模塊來解決這個問題。 現在已經棄用了(自2017年7月起)。 導入Seaborn時,不再應用默認樣式,因此您需要顯式調用set()或set_style(),set_context()和set_palette()中的一個或多個以獲取Seaborn或Matplotlib默認的繪圖。

    # Import Matplotlib
    import matplotlib.pyplot as plt

    # Check the available styles
    plt.style.available

    # Use Matplotlib defaults
    plt.style.use("classic")

如何在Matplotlib中使用Seaborn的顏色作為色彩?

如何將Seaborn顏色引入Matplotlib圖中的問題。 您可以使用color_palette()來定義要使用的顏色映射和參數n_colors的顏色數。 在這種情況下,這個例子將假設有5個標簽分配給在data1和data2中定義的數據點,所以這就是為什么你傳遞5到這個參數,你也做一個長度等于N的列表,其中5個整數變化 在可變顏色

      # Import the necessary libraries
      import seaborn as sns
      import matplotlib.pyplot as plt
      import numpy as np
      from matplotlib.colors import ListedColormap

      # Define a variable N
      N = 500

      # Construct the colormap
      current_palette = sns.color_palette("muted", n_colors=5)
      cmap = ListedColormap(sns.color_palette(current_palette).as_hex())

      # Initialize the data
      data1 = np.random.randn(N)
      data2 = np.random.randn(N)
      # Assume that there are 5 possible labels
      colors = np.random.randint(0,5,N)

     # Create a scatter plot
    plt.scatter(data1, data2, c=colors, cmap=cmap)

    # Add a color bar
    plt.colorbar()

    # Show the plot
    plt.show()
001.png

如何在Seaborn中旋轉標簽文本

要在Seaborn圖中旋轉標簽文本,您需要處理圖級別。 請注意,在下面的代碼塊中,您可以使用FacetGrid方法之一,即set_xticklabels來旋轉文本

    # Import the necessary libraries
    import matplotlib.pyplot as plt
    import seaborn as sns 
    import numpy as np
    import pandas as pd

   # Initialize the data
   x = 10 ** np.arange(1, 10)
   y = x * 2
  data = pd.DataFrame(data={'x': x, 'y': y})

  # Create an lmplot
  grid = sns.lmplot('x', 'y', data, size=7, truncate=True, scatter_kws={"s": 100})

  # Rotate the labels on x-axis
  grid.set_xticklabels(rotation=90)

  # Show the plot
  plt.show()
003.png

具體的其他內容,見原文;
原文地址:https://www.datacamp.com/community/tutorials/seaborn-python-tutorial#sm

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容