tft每日頭條

 > 科技

 > python 數據分析與可視化

python 數據分析與可視化

科技 更新时间:2025-01-07 03:25:45

「目錄」

繪圖和可視化

Plotting and Visualization

  • 9.1 => matplotlib

-------> figure and subplot

  • 9.2 => pandas和seaborn繪圖

python 數據分析與可視化(Python數據分析筆記9.1.1)1

matplotlib

作者原書中寫道,matplotlib是一個用于創建出版質量圖表的繪圖包(主要是2D方面)。

該項目是John Hunter于2002年啟動的,其目的是為Python構建一個MATLAB式的繪圖接口。

随着時間發展,matpotlib衍生出了多個數據可視化的工具集,它們使用matplotlib作為底層。其中之一是seaborn。

matplotlib約定的引入方式是下面這樣的:

import matplotlib.pyplot as plt

首先,建議在Jupyter notebook中執行下面的語句,這樣就可以在jupyter notebook中進行交互式繪圖了:

%matplotlib notebook

先做一個簡單的線圖吧:

In [1]: import matplotlib.pyplot as plt In [2]: import numpy as np In [3]: data = np.arange(10) In [4]: data Out[4]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) In [5]: plt.plot(data)

python 數據分析與可視化(Python數據分析筆記9.1.1)2

Figure and Subplot

matplotlib的圖像都位于Figure對象中。我們可以用plt.figure創建一個新的Figure:

In [6]: fig = plt.figure()

plt.figure()中有一些選項比如figsize可以設置圖片的大小和縱橫比。

通過add_subplot我們可以在空白的figure上創建一個或多個subplot子圖:

In [7]: ax1 = fig.add_subplot(2, 2, 1) In [8]: ax2 = fig.add_subplot(2, 2, 2) In [9]: ax3 = fig.add_subplot(2, 2, 3)

上面代碼的意思是,創建2*2的圖像(最多4張圖),第3個參數代表當前選中的是第幾個圖。

ax1.hist代表第一張圖為柱狀圖,ax2.scatter代表第二張圖為散點圖,ax3.plot代表第三張圖為折線圖,color參數就是顔色,alpha參數為透明度:

In [10]: _ = ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3) In [11]: ax2.scatter(np.arange(30), np.arange(30) 3 * np.random.randn(30)) In [12]: ax3.plot(np.random.randn(50).cumsum(), 'k--')

python 數據分析與可視化(Python數據分析筆記9.1.1)3

更方便的創建網格的方法是使用方法plt.subplots,它會創建一個新的Figure,并返回一個含有已創建的subplot對象的Numpy數組:

In [13]: fig, axes = plt.subplots(2, 3) In [14]: axes Out[14]: array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000001CFAF06DEB8>, <matplotlib.axes._subplots.AxesSubplot object at 0x000001CFAF096048>, <matplotlib.axes._subplots.AxesSubplot object at 0x000001CFAF0C5160>], [<matplotlib.axes._subplots.AxesSubplot object at 0x000001CFAF234278>, <matplotlib.axes._subplots.AxesSubplot object at 0x000001CFAF260390>, <matplotlib.axes._subplots.AxesSubplot object at 0x000001CFAF2924A8>]], dtype=object)

現在通過對axes數組進行索引就可以方便的繪圖了:

In [15]: axes[0,1].scatter(np.arange(20), np.arange(20) 3 * np.random.randn(20), color='y', alpha=0.7) Out[15]: <matplotlib.collections.PathCollection at 0x1cfaf039978> In [16]: axes[0,1].scatter(np.arange(20), np.arange(20) 3 * np.random.randn(20), color='b', alpha=0.7) Out[16]: <matplotlib.collections.PathCollection at 0x1cfaf2de240>

python 數據分析與可視化(Python數據分析筆記9.1.1)4

BYE-BYE!

-END-

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved