日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python数据分析学习系列 九 绘图和可视化

發布時間:2024/3/13 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python数据分析学习系列 九 绘图和可视化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python數據分析學習系列 九 繪圖和可視化

資料轉自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下載

信息可視化(也叫繪圖)是數據分析中最重要的工作之一。它可能是探索過程的一部分,例如,幫助我們找出異常值、必要的數據轉換、得出有關模型的idea等。另外,做一個可交互的數據可視化也許是工作的最終目標。Python有許多庫進行靜態或動態的數據可視化,但我這里重要關注于matplotlib(http://matplotlib.org/)和基于它的庫。

matplotlib是一個用于創建出版質量圖表的桌面繪圖包(主要是2D方面)。該項目是由John Hunter于2002年啟動的,其目的是為Python構建一個MATLAB式的繪圖接口。matplotlib和IPython社區進行合作,簡化了從IPython shell(包括現在的Jupyter notebook)進行交互式繪圖。matplotlib支持各種操作系統上許多不同的GUI后端,而且還能將圖片導出為各種常見的矢量(vector)和光柵(raster)圖:PDF、SVG、JPG、PNG、BMP、GIF等。除了幾張,本書中的大部分圖都是用它生成的。

隨著時間的發展,matplotlib衍生出了多個數據可視化的工具集,它們使用matplotlib作為底層。其中之一是seaborn(http://seaborn.pydata.org/),本章后面會學習它。

學習本章代碼案例的最簡單方法是在Jupyter notebook進行交互式繪圖。在Jupyter notebook中執行下面的語句:

%matplotlib notebook

9.1 matplotlib API入門

matplotlib的通常引入約定是:

In [11]: import matplotlib.pyplot as plt

在Jupyter中運行%matplotlib notebook(或在IPython中運行%matplotlib),就可以創建一個簡單的圖形。如果一切設置正確,會看到圖9-1:

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

雖然seaborn這樣的庫和pandas的內置繪圖函數能夠處理許多普通的繪圖任務,但如果需要自定義一些高級功能的話就必須學習matplotlib API。

筆記:雖然本書沒有詳細地討論matplotlib的各種功能,但足以將你引入門。matplotlib的示例庫和文檔是學習高級特性的最好資源。

Figure和Subplot

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

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

如果用的是IPython,這時會彈出一個空窗口,但在Jupyter中,必須再輸入更多命令才能看到。plt.figure有一些選項,特別是figsize,它用于確保當圖片保存到磁盤時具有一定的大小和縱橫比。

不能通過空Figure繪圖。必須用add_subplot創建一個或多個subplot才行:

In [17]: ax1 = fig.add_subplot(2, 2, 1)

這條代碼的意思是:圖像應該是2×2的(即最多4張圖),且當前選中的是4個subplot中的第一個(編號從1開始)。如果再把后面兩個subplot也創建出來,最終得到的圖像如圖9-2所示:

In [18]: ax2 = fig.add_subplot(2, 2, 2)In [19]: ax3 = fig.add_subplot(2, 2, 3)

提示:使用Jupyter notebook有一點不同,即每個小窗重新執行后,圖形會被重置。因此,對于復雜的圖形,,你必須將所有的繪圖命令存在一個小窗里。

這里,我們運行同一個小窗里的所有命令:

fig = plt.figure() ax1 = fig.add_subplot(2, 2, 1) ax2 = fig.add_subplot(2, 2, 2) ax3 = fig.add_subplot(2, 2, 3)

如果這時執行一條繪圖命令(如plt.plot([1.5, 3.5, -2, 1.6])),matplotlib就會在最后一個用過的subplot(如果沒有則創建一個)上進行繪制,隱藏創建figure和subplot的過程。因此,如果我們執行下列命令,你就會得到如圖9-3所示的結果:

In [20]: plt.plot(np.random.randn(50).cumsum(), 'k--')

"k–"是一個線型選項,用于告訴matplotlib繪制黑色虛線圖。上面那些由fig.add_subplot所返回的對象是AxesSubplot對象,直接調用它們的實例方法就可以在其它空著的格子里面畫圖了,如圖9-4所示:

In [21]: ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3)In [22]: ax2.scatter(np.arange(30), np.arange(30) + 3 * np.random.randn(30))

你可以在matplotlib的文檔中找到各種圖表類型。

創建包含subplot網格的figure是一個非常常見的任務,matplotlib有一個更為方便的方法plt.subplots,它可以創建一個新的Figure,并返回一個含有已創建的subplot對象的NumPy數組:

In [24]: fig, axes = plt.subplots(2, 3)In [25]: axes Out[25]: array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb626374048>,<matplotlib.axes._subplots.AxesSubplot object at 0x7fb62625db00>,<matplotlib.axes._subplots.AxesSubplot object at 0x7fb6262f6c88>],[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb6261a36a0>,<matplotlib.axes._subplots.AxesSubplot object at 0x7fb626181860>,<matplotlib.axes._subplots.AxesSubplot object at 0x7fb6260fd4e0>]], dtype =object)

這是非常實用的,因為可以輕松地對axes數組進行索引,就好像是一個二維數組一樣,例如axes[0,1]。你還可以通過sharex和sharey指定subplot應該具有相同的X軸或Y軸。在比較相同范圍的數據時,這也是非常實用的,否則,matplotlib會自動縮放各圖表的界限。有關該方法的更多信息,請參見表9-1。

調整subplot周圍的間距

默認情況下,matplotlib會在subplot外圍留下一定的邊距,并在subplot之間留下一定的間距。間距跟圖像的高度和寬度有關,因此,如果你調整了圖像大小(不管是編程還是手工),間距也會自動調整。利用Figure的subplots_adjust方法可以輕而易舉地修改間距,此外,它也是個頂級函數:

subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=None, hspace=None)

wspace和hspace用于控制寬度和高度的百分比,可以用作subplot之間的間距。下面是一個簡單的例子,其中我將間距收縮到了0(如圖9-5所示):

fig, axes = plt.subplots(2, 2, sharex=True, sharey=True) for i in range(2):for j in range(2):axes[i, j].hist(np.random.randn(500), bins=50, color='k', alpha=0.5) plt.subplots_adjust(wspace=0, hspace=0)

不難看出,其中的軸標簽重疊了。matplotlib不會檢查標簽是否重疊,所以對于這種情況,你只能自己設定刻度位置和刻度標簽。后面幾節將會詳細介紹該內容。

顏色、標記和線型

matplotlib的plot函數接受一組X和Y坐標,還可以接受一個表示顏色和線型的字符串縮寫。例如,要根據x和y繪制綠色虛線,你可以執行如下代碼:

ax.plot(x, y, 'g--')

這種在一個字符串中指定顏色和線型的方式非常方便。在實際中,如果你是用代碼繪圖,你可能不想通過處理字符串來獲得想要的格式。通過下面這種更為明確的方式也能得到同樣的效果:

ax.plot(x, y, linestyle='--', color='g')

常用的顏色可以使用顏色縮寫,你也可以指定顏色碼(例如,‘#CECECE’)。你可以通過查看plot的文檔字符串查看所有線型的合集(在IPython和Jupyter中使用plot?)。

線圖可以使用標記強調數據點。因為matplotlib可以創建連續線圖,在點之間進行插值,因此有時可能不太容易看出真實數據點的位置。標記也可以放到格式字符串中,但標記類型和線型必須放在顏色后面(見圖9-6):

In [30]: from numpy.random import randnIn [31]: plt.plot(randn(30).cumsum(), 'ko--')

還可以將其寫成更為明確的形式:

plot(randn(30).cumsum(), color='k', linestyle='dashed', marker='o')

在線型圖中,非實際數據點默認是按線性方式插值的。可以通過drawstyle選項修改(見圖9-7):

In [33]: data = np.random.randn(30).cumsum()In [34]: plt.plot(data, 'k--', label='Default') Out[34]: [<matplotlib.lines.Line2D at 0x7fb624d86160>]In [35]: plt.plot(data, 'k-', drawstyle='steps-post', label='steps-post') Out[35]: [<matplotlib.lines.Line2D at 0x7fb624d869e8>]In [36]: plt.legend(loc='best')

你可能注意到運行上面代碼時有輸出<matplotlib.lines.Line2D at …>。matplotlib會返回引用了新添加的子組件的對象。大多數時候,你可以放心地忽略這些輸出。這里,因為我們傳遞了label參數到plot,我們可以創建一個plot圖例,指明每條使用plt.legend的線。

筆記:你必須調用plt.legend(或使用ax.legend,如果引用了軸的話)來創建圖例,無論你繪圖時是否傳遞label標簽選項。

刻度、標簽和圖例

對于大多數的圖表裝飾項,其主要實現方式有二:使用過程型的pyplot接口(例如,matplotlib.pyplot)以及更為面向對象的原生matplotlib API。

pyplot接口的設計目的就是交互式使用,含有諸如xlim、xticks和xticklabels之類的方法。它們分別控制圖表的范圍、刻度位置、刻度標簽等。其使用方式有以下兩種:

  • 調用時不帶參數,則返回當前的參數值(例如,plt.xlim()返回當前的X軸繪圖范圍)。
  • 調用時帶參數,則設置參數值(例如,plt.xlim([0,10])會將X軸的范圍設置為0到10)。

所有這些方法都是對當前或最近創建的AxesSubplot起作用的。它們各自對應subplot對象上的兩個方法,以xlim為例,就是ax.get_xlim和ax.set_xlim。我更喜歡使用subplot的實例方法(因為我喜歡明確的事情,而且在處理多個subplot時這樣也更清楚一些)。當然你完全可以選擇自己覺得方便的那個。

設置標題、軸標簽、刻度以及刻度標簽

為了說明自定義軸,我將創建一個簡單的圖像并繪制一段隨機漫步(如圖9-8所示):

In [37]: fig = plt.figure()In [38]: ax = fig.add_subplot(1, 1, 1)In [39]: ax.plot(np.random.randn(1000).cumsum())

要改變x軸刻度,最簡單的辦法是使用set_xticks和set_xticklabels。前者告訴matplotlib要將刻度放在數據范圍中的哪些位置,默認情況下,這些位置也就是刻度標簽。但我們可以通過set_xticklabels將任何其他的值用作標簽:

In [40]: ticks = ax.set_xticks([0, 250, 500, 750, 1000])In [41]: labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],....: rotation=30, fontsize='small')

rotation選項設定x刻度標簽傾斜30度。最后,再用set_xlabel為X軸設置一個名稱,并用set_title設置一個標題(見圖9-9的結果):

In [42]: ax.set_title('My first matplotlib plot') Out[42]: <matplotlib.text.Text at 0x7fb624d055f8>In [43]: ax.set_xlabel('Stages')

Y軸的修改方式與此類似,只需將上述代碼中的x替換為y即可。軸的類有集合方法,可以批量設定繪圖選項。前面的例子,也可以寫為:

props = {'title': 'My first matplotlib plot','xlabel': 'Stages' } ax.set(**props)

添加圖例

圖例(legend)是另一種用于標識圖表元素的重要工具。添加圖例的方式有多種。最簡單的是在添加subplot的時候傳入label參數:

In [44]: from numpy.random import randnIn [45]: fig = plt.figure(); ax = fig.add_subplot(1, 1, 1)In [46]: ax.plot(randn(1000).cumsum(), 'k', label='one') Out[46]: [<matplotlib.lines.Line2D at 0x7fb624bdf860>]In [47]: ax.plot(randn(1000).cumsum(), 'k--', label='two') Out[47]: [<matplotlib.lines.Line2D at 0x7fb624be90f0>]In [48]: ax.plot(randn(1000).cumsum(), 'k.', label='three') Out[48]: [<matplotlib.lines.Line2D at 0x7fb624be9160>]

在此之后,你可以調用ax.legend()或plt.legend()來自動創建圖例(結果見圖9-10):

In [49]: ax.legend(loc='best')

legend方法有幾個其它的loc位置參數選項。請查看文檔字符串(使用ax.legend?)。

loc告訴matplotlib要將圖例放在哪。如果你不是吹毛求疵的話,"best"是不錯的選擇,因為它會選擇最不礙事的位置。要從圖例中去除一個或多個元素,不傳入label或傳入label='nolegend’即可。(中文第一版這里把best錯寫成了beat)

注解以及在Subplot上繪圖

除標準的繪圖類型,你可能還希望繪制一些子集的注解,可能是文本、箭頭或其他圖形等。注解和文字可以通過text、arrow和annotate函數進行添加。text可以將文本繪制在圖表的指定坐標(x,y),還可以加上一些自定義格式:

ax.text(x, y, 'Hello world!',family='monospace', fontsize=10)

注解中可以既含有文本也含有箭頭。例如,我們根據最近的標準普爾500指數價格(來自Yahoo!Finance)繪制一張曲線圖,并標出2008年到2009年金融危機期間的一些重要日期。你可以在Jupyter notebook的一個小窗中試驗這段代碼(圖9-11是結果):

from datetime import datetimefig = plt.figure() ax = fig.add_subplot(1, 1, 1)data = pd.read_csv('examples/spx.csv', index_col=0, parse_dates=True) spx = data['SPX']spx.plot(ax=ax, style='k-')crisis_data = [(datetime(2007, 10, 11), 'Peak of bull market'),(datetime(2008, 3, 12), 'Bear Stearns Fails'),(datetime(2008, 9, 15), 'Lehman Bankruptcy') ]for date, label in crisis_data:ax.annotate(label, xy=(date, spx.asof(date) + 75),xytext=(date, spx.asof(date) + 225),arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4),horizontalalignment='left', verticalalignment='top')# Zoom in on 2007-2010 ax.set_xlim(['1/1/2007', '1/1/2011']) ax.set_ylim([600, 1800])ax.set_title('Important dates in the 2008-2009 financial crisis')

這張圖中有幾個重要的點要強調:ax.annotate方法可以在指定的x和y坐標軸繪制標簽。我們使用set_xlim和set_ylim人工設定起始和結束邊界,而不使用matplotlib的默認方法。最后,用ax.set_title添加圖標標題。

更多有關注解的示例,請訪問matplotlib的在線示例庫。

圖形的繪制要麻煩一些。matplotlib有一些表示常見圖形的對象。這些對象被稱為塊(patch)。其中有些(如Rectangle和Circle),可以在matplotlib.pyplot中找到,但完整集合位于matplotlib.patches。

要在圖表中添加一個圖形,你需要創建一個塊對象shp,然后通過ax.add_patch(shp)將其添加到subplot中(如圖9-12所示):

fig = plt.figure() ax = fig.add_subplot(1, 1, 1)rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3) circ = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3) pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]],color='g', alpha=0.5)ax.add_patch(rect) ax.add_patch(circ) ax.add_patch(pgon)

如果查看許多常見圖表對象的具體實現代碼,你就會發現它們其實就是由塊patch組裝而成的。

將圖表保存到文件

利用plt.savefig可以將當前圖表保存到文件。該方法相當于Figure對象的實例方法savefig。例如,要將圖表保存為SVG文件,你只需輸入:

plt.savefig('figpath.svg')

文件類型是通過文件擴展名推斷出來的。因此,如果你使用的是.pdf,就會得到一個PDF文件。我在發布圖片時最常用到兩個重要的選項是dpi(控制“每英寸點數”分辨率)和bbox_inches(可以剪除當前圖表周圍的空白部分)。要得到一張帶有最小白邊且分辨率為400DPI的PNG圖片,你可以:

plt.savefig('figpath.png', dpi=400, bbox_inches='tight')

savefig并非一定要寫入磁盤,也可以寫入任何文件型的對象,比如BytesIO:

from io import BytesIO buffer = BytesIO() plt.savefig(buffer) plot_data = buffer.getvalue()

表9-2列出了savefig的其它選項。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dE8OBX0w-1655086231177)(http://upload-images.jianshu.io/upload_images/7178691-4bee796bf7262423.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

matplotlib配置

matplotlib自帶一些配色方案,以及為生成出版質量的圖片而設定的默認配置信息。幸運的是,幾乎所有默認行為都能通過一組全局參數進行自定義,它們可以管理圖像大小、subplot邊距、配色方案、字體大小、網格類型等。一種Python編程方式配置系統的方法是使用rc方法。例如,要將全局的圖像默認大小設置為10×10,你可以執行:

plt.rc('figure', figsize=(10, 10))

rc的第一個參數是希望自定義的對象,如’figure’、‘axes’、‘xtick’、‘ytick’、‘grid’、'legend’等。其后可以跟上一系列的關鍵字參數。一個簡單的辦法是將這些選項寫成一個字典:

font_options = {'family' : 'monospace','weight' : 'bold','size' : 'small'} plt.rc('font', **font_options)

要了解全部的自定義選項,請查閱matplotlib的配置文件matplotlibrc(位于matplotlib/mpl-data目錄中)。如果對該文件進行了自定義,并將其放在你自己的.matplotlibrc目錄中,則每次使用matplotlib時就會加載該文件。

下一節,我們會看到,seaborn包有若干內置的繪圖主題或類型,它們使用了matplotlib的內部配置。

9.2 使用pandas和seaborn繪圖

matplotlib實際上是一種比較低級的工具。要繪制一張圖表,你組裝一些基本組件就行:數據展示(即圖表類型:線型圖、柱狀圖、盒形圖、散布圖、等值線圖等)、圖例、標題、刻度標簽以及其他注解型信息。

在pandas中,我們有多列數據,還有行和列標簽。pandas自身就有內置的方法,用于簡化從DataFrame和Series繪制圖形。另一個庫seaborn(https://seaborn.pydata.org/),由Michael Waskom創建的靜態圖形庫。Seaborn簡化了許多常見可視類型的創建。

提示:引入seaborn會修改matplotlib默認的顏色方案和繪圖類型,以提高可讀性和美觀度。即使你不使用seaborn API,你可能也會引入seaborn,作為提高美觀度和繪制常見matplotlib圖形的簡化方法。

線型圖

Series和DataFrame都有一個用于生成各類圖表的plot方法。默認情況下,它們所生成的是線型圖(如圖9-13所示):

In [60]: s = pd.Series(np.random.randn(10).cumsum(), index=np.arange(0, 100, 10))In [61]: s.plot()

該Series對象的索引會被傳給matplotlib,并用以繪制X軸。可以通過use_index=False禁用該功能。X軸的刻度和界限可以通過xticks和xlim選項進行調節,Y軸就用yticks和ylim。plot參數的完整列表請參見表9-3。我只會講解其中幾個,剩下的就留給讀者自己去研究了。

pandas的大部分繪圖方法都有一個可選的ax參數,它可以是一個matplotlib的subplot對象。這使你能夠在網格布局中更為靈活地處理subplot的位置。

DataFrame的plot方法會在一個subplot中為各列繪制一條線,并自動創建圖例(如圖9-14所示):

In [62]: df = pd.DataFrame(np.random.randn(10, 4).cumsum(0),....: columns=['A', 'B', 'C', 'D'],....: index=np.arange(0, 100, 10))In [63]: df.plot()

plot屬性包含一批不同繪圖類型的方法。例如,df.plot()等價于df.plot.line()。后面會學習這些方法。

筆記:plot的其他關鍵字參數會被傳給相應的matplotlib繪圖函數,所以要更深入地自定義圖表,就必須學習更多有關matplotlib API的知識。

DataFrame還有一些用于對列進行靈活處理的選項,例如,是要將所有列都繪制到一個subplot中還是創建各自的subplot。詳細信息請參見表9-4。

注意: 有關時間序列的繪圖,請見第11章。

柱狀圖

plot.bar()和plot.barh()分別繪制水平和垂直的柱狀圖。這時,Series和DataFrame的索引將會被用作X(bar)或Y(barh)刻度(如圖9-15所示):

In [64]: fig, axes = plt.subplots(2, 1)In [65]: data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop'))In [66]: data.plot.bar(ax=axes[0], color='k', alpha=0.7) Out[66]: <matplotlib.axes._subplots.AxesSubplot at 0x7fb62493d470>In [67]: data.plot.barh(ax=axes[1], color='k', alpha=0.7)

color='k’和alpha=0.7設定了圖形的顏色為黑色,并使用部分的填充透明度。對于DataFrame,柱狀圖會將每一行的值分為一組,并排顯示,如圖9-16所示:

In [69]: df = pd.DataFrame(np.random.rand(6, 4),....: index=['one', 'two', 'three', 'four', 'five', 'six'],....: columns=pd.Index(['A', 'B', 'C', 'D'], name='Genus'))In [70]: df Out[70]: Genus A B C D one 0.370670 0.602792 0.229159 0.486744 two 0.420082 0.571653 0.049024 0.880592 three 0.814568 0.277160 0.880316 0.431326 four 0.374020 0.899420 0.460304 0.100843 five 0.433270 0.125107 0.494675 0.961825 six 0.601648 0.478576 0.205690 0.560547In [71]: df.plot.bar()

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lW8EGDCN-1655086231180)(http://upload-images.jianshu.io/upload_images/7178691-bfc141acb37d99b5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

注意,DataFrame各列的名稱"Genus"被用作了圖例的標題。

設置stacked=True即可為DataFrame生成堆積柱狀圖,這樣每行的值就會被堆積在一起(如圖9-17所示):

In [73]: df.plot.barh(stacked=True, alpha=0.5)

筆記:柱狀圖有一個非常不錯的用法:利用value_counts圖形化顯示Series中各值的出現頻率,比如s.value_counts().plot.bar()。

再以本書前面用過的那個有關小費的數據集為例,假設我們想要做一張堆積柱狀圖以展示每天各種聚會規模的數據點的百分比。我用read_csv將數據加載進來,然后根據日期和聚會規模創建一張交叉表:

In [75]: tips = pd.read_csv('examples/tips.csv')In [76]: party_counts = pd.crosstab(tips['day'], tips['size'])In [77]: party_counts Out[77]: size 1 2 3 4 5 6 day Fri 1 16 1 1 0 0 Sat 2 53 18 13 1 0 Sun 0 39 15 18 3 1 Thur 1 48 4 5 1 3# Not many 1- and 6-person parties In [78]: party_counts = party_counts.loc[:, 2:5]

然后進行規格化,使得各行的和為1,并生成圖表(如圖9-18所示):

# Normalize to sum to 1 In [79]: party_pcts = party_counts.div(party_counts.sum(1), axis=0)In [80]: party_pcts Out[80]: size 2 3 4 5 day Fri 0.888889 0.055556 0.055556 0.000000 Sat 0.623529 0.211765 0.152941 0.011765 Sun 0.520000 0.200000 0.240000 0.040000 Thur 0.827586 0.068966 0.086207 0.017241In [81]: party_pcts.plot.bar()

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HsZ4pfkj-1655086231181)(http://upload-images.jianshu.io/upload_images/7178691-2918f67936823834.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

于是,通過該數據集就可以看出,聚會規模在周末會變大。

對于在繪制一個圖形之前,需要進行合計的數據,使用seaborn可以減少工作量。用seaborn來看每天的小費比例(圖9-19是結果):

In [83]: import seaborn as snsIn [84]: tips['tip_pct'] = tips['tip'] / (tips['total_bill'] - tips['tip'])In [85]: tips.head() Out[85]: total_bill tip smoker day time size tip_pct 0 16.99 1.01 No Sun Dinner 2 0.063204 1 10.34 1.66 No Sun Dinner 3 0.191244 2 21.01 3.50 No Sun Dinner 3 0.199886 3 23.68 3.31 No Sun Dinner 2 0.162494 4 24.59 3.61 No Sun Dinner 4 0.172069In [86]: sns.barplot(x='tip_pct', y='day', data=tips, orient='h')

seaborn的繪制函數使用data參數,它可能是pandas的DataFrame。其它的參數是關于列的名字。因為一天的每個值有多次觀察,柱狀圖的值是tip_pct的平均值。繪制在柱狀圖上的黑線代表95%置信區間(可以通過可選參數配置)。

seaborn.barplot有顏色選項,使我們能夠通過一個額外的值設置(見圖9-20):

In [88]: sns.barplot(x='tip_pct', y='day', hue='time', data=tips, orient='h')

注意,seaborn已經自動修改了圖形的美觀度:默認調色板,圖形背景和網格線的顏色。你可以用seaborn.set在不同的圖形外觀之間切換:

In [90]: sns.set(style="whitegrid")

直方圖和密度圖

直方圖(histogram)是一種可以對值頻率進行離散化顯示的柱狀圖。數據點被拆分到離散的、間隔均勻的面元中,繪制的是各面元中數據點的數量。再以前面那個小費數據為例,通過在Series使用plot.hist方法,我們可以生成一張“小費占消費總額百分比”的直方圖(如圖9-21所示):

In [92]: tips['tip_pct'].plot.hist(bins=50)

與此相關的一種圖表類型是密度圖,它是通過計算“可能會產生觀測數據的連續概率分布的估計”而產生的。一般的過程是將該分布近似為一組核(即諸如正態分布之類的較為簡單的分布)。因此,密度圖也被稱作KDE(Kernel Density Estimate,核密度估計)圖。使用plot.kde和標準混合正態分布估計即可生成一張密度圖(見圖9-22):

In [94]: tips['tip_pct'].plot.density()

seaborn的distplot方法繪制直方圖和密度圖更加簡單,還可以同時畫出直方圖和連續密度估計圖。作為例子,考慮一個雙峰分布,由兩個不同的標準正態分布組成(見圖9-23):

In [96]: comp1 = np.random.normal(0, 1, size=200)In [97]: comp2 = np.random.normal(10, 2, size=200)In [98]: values = pd.Series(np.concatenate([comp1, comp2]))In [99]: sns.distplot(values, bins=100, color='k')

散布圖或點圖

點圖或散布圖是觀察兩個一維數據序列之間的關系的有效手段。在下面這個例子中,我加載了來自statsmodels項目的macrodata數據集,選擇了幾個變量,然后計算對數差:

In [100]: macro = pd.read_csv('examples/macrodata.csv')In [101]: data = macro[['cpi', 'm1', 'tbilrate', 'unemp']]In [102]: trans_data = np.log(data).diff().dropna()In [103]: trans_data[-5:] Out[103]: cpi m1 tbilrate unemp 198 -0.007904 0.045361 -0.396881 0.105361 199 -0.021979 0.066753 -2.277267 0.139762 200 0.002340 0.010286 0.606136 0.160343 201 0.008419 0.037461 -0.200671 0.127339 202 0.008894 0.012202 -0.405465 0.042560

然后可以使用seaborn的regplot方法,它可以做一個散布圖,并加上一條線性回歸的線(見圖9-24):

In [105]: sns.regplot('m1', 'unemp', data=trans_data) Out[105]: <matplotlib.axes._subplots.AxesSubplot at 0x7fb613720be0>In [106]: plt.title('Changes in log %s versus log %s' % ('m1', 'unemp'))

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-zn1Kmxuz-1655086231183)(http://upload-images.jianshu.io/upload_images/7178691-2133d20739478a80.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

在探索式數據分析工作中,同時觀察一組變量的散布圖是很有意義的,這也被稱為散布圖矩陣(scatter plot matrix)。純手工創建這樣的圖表很費工夫,所以seaborn提供了一個便捷的pairplot函數,它支持在對角線上放置每個變量的直方圖或密度估計(見圖9-25):

In [107]: sns.pairplot(trans_data, diag_kind='kde', plot_kws={'alpha': 0.2})

你可能注意到了plot_kws參數。它可以讓我們傳遞配置選項到非對角線元素上的圖形使用。對于更詳細的配置選項,可以查閱seaborn.pairplot文檔字符串。

##分面網格(facet grid)和類型數據
要是數據集有額外的分組維度呢?有多個分類變量的數據可視化的一種方法是使用小面網格。seaborn有一個有用的內置函數factorplot,可以簡化制作多種分面圖(見圖9-26):

In [108]: sns.factorplot(x='day', y='tip_pct', hue='time', col='smoker',.....: kind='bar', data=tips[tips.tip_pct < 1])

除了在分面中用不同的顏色按時間分組,我們還可以通過給每個時間值添加一行來擴展分面網格:

In [109]: sns.factorplot(x='day', y='tip_pct', row='time',.....: col='smoker',.....: kind='bar', data=tips[tips.tip_pct < 1])

factorplot支持其它的繪圖類型,你可能會用到。例如,盒圖(它可以顯示中位數,四分位數,和異常值)就是一個有用的可視化類型(見圖9-28):

In [110]: sns.factorplot(x='tip_pct', y='day', kind='box',.....: data=tips[tips.tip_pct < 0.5])

使用更通用的seaborn.FacetGrid類,你可以創建自己的分面網格。請查閱seaborn的文檔(https://seaborn.pydata.org/)。

9.3 其它的Python可視化工具

與其它開源庫類似,Python創建圖形的方式非常多(根本羅列不完)。自從2010年,許多開發工作都集中在創建交互式圖形以便在Web上發布。利用工具如Boken(https://bokeh.pydata.org/en/latest/)和Plotly(https://github.com/plotly/plotly.py),現在可以創建動態交互圖形,用于網頁瀏覽器。

對于創建用于打印或網頁的靜態圖形,我建議默認使用matplotlib和附加的庫,比如pandas和seaborn。對于其它數據可視化要求,學習其它的可用工具可能是有用的。我鼓勵你探索繪圖的生態系統,因為它將持續發展。

9.4 總結

本章的目的是熟悉一些基本的數據可視化操作,使用pandas,matplotlib,和seaborn。如果視覺顯示數據分析的結果對你的工作很重要,我鼓勵你尋求更多的資源來了解更高效的數據可視化。這是一個活躍的研究領域,你可以通過在線和紙質的形式學習許多優秀的資源。

下一章,我們將重點放在pandas的數據聚合和分組操作上。

總結

以上是生活随笔為你收集整理的Python数据分析学习系列 九 绘图和可视化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久草在线免费在线观看 | 青青河边草观看完整版高清 | 国产一级片不卡 | 国内视频在线观看 | 久久av福利 | 视频在线精品 | 国产精品va在线 | 亚洲成人av片 | 美女网站在线观看 | 69人人| 久草热视频 | 亚洲成人av电影在线 | 夜又临在线观看 | 一区二区精品国产 | 不卡视频一区二区三区 | 国产电影一区二区三区四区 | 91x色| 午夜久久影院 | 国产自偷自拍 | 日韩专区 在线 | 国产精品成人一区二区 | 精久久久久| 久久网站最新地址 | 国产精品原创 | 国产999视频 | 91精品国产成人观看 | 亚洲高清在线精品 | 成人av影院在线观看 | 美女黄网久久 | 亚洲午夜大片 | 日韩精品一区在线观看 | 天天艹日日干 | 亚洲一区黄色 | 亚洲精品视频播放 | 日本女人在线观看 | 久久99最新地址 | 久久精品电影网 | 在线色亚洲 | 国产视频九色蝌蚪 | 中文字幕永久在线 | 婷婷激情av | 久久久久久电影 | 国产va在线| 91av电影| 久久国产精品一区二区三区 | 亚洲成人av片 | 国产一区在线看 | 久草男人天堂 | 天天操天天综合网 | 日韩高清国产精品 | 成人午夜电影免费在线观看 | 欧洲精品视频一区二区 | 久久免费福利 | 国产xxxx做受性欧美88 | 午夜av不卡 | 激情综合一区 | 国产亚州精品视频 | 久久成人国产精品 | 久久久久久久毛片 | ww亚洲ww亚在线观看 | 欧美色插 | 久久综合九色综合97婷婷女人 | 免费在线精品视频 | 中文字幕在线播放日韩 | 成人资源在线观看 | 天天操天天玩 | 亚洲一级黄色大片 | 欧美伦理一区二区 | 婷婷丁香导航 | 成人动漫视频在线 | 免费视频一区 | 国产精品麻豆三级一区视频 | 五月婷婷综合在线 | 欧美天堂影院 | 国产97在线视频 | 91视频免费看网站 | 亚洲精品免费观看视频 | 波多野结衣电影一区二区三区 | 国产精品国产自产拍高清av | 久久精品99国产精品日本 | 亚洲四虎在线 | 激情av在线资源 | 中文在线中文资源 | 久久精品aaa | 午夜久久电影网 | 日韩性久久 | 久久99热久久99精品 | 精品高清美女精品国产区 | 六月丁香六月婷婷 | 13日本xxxxxⅹxxx20 | 国产成人精品一区一区一区 | 久久综合九色综合97婷婷女人 | 欧美激情综合五月色丁香 | 免费v片 | 欧美黑人巨大xxxxx | 国产精品精品国产 | 国产很黄很色的视频 | 国产精品18久久久久vr手机版特色 | 99精品福利 | 一区三区视频 | 国产精品wwwwww| 99久久久国产精品免费观看 | 日韩草比| 日韩综合精品 | 96精品视频 | 蜜臀av夜夜澡人人爽人人桃色 | 国产原创在线 | 日本黄色免费播放 | 国产一在线精品一区在线观看 | av丝袜天堂| 成人国产精品免费观看 | 日日爽夜夜操 | 天天插天天干天天操 | 久久久黄色 | 久久一区国产 | 91视频啪| 久久久免费观看 | 黄色一区二区在线观看 | 日本不卡一区二区三区在线观看 | 亚洲精品欧洲精品 | 18国产精品白浆在线观看免费 | 亚洲国产免费av | 精品国产一区二区三区在线观看 | 久久视频精品在线观看 | 正在播放五月婷婷狠狠干 | 少妇高潮冒白浆 | 亚洲综合欧美日韩狠狠色 | 99热在线国产精品 | 国内精品久久久久影院一蜜桃 | 四虎精品成人免费网站 | 超碰.com| 欧美国产日韩一区二区三区 | 久久精品一二区 | 亚洲成人第一区 | 91视频电影 | 日日操日日插 | 国产精品久久久久婷婷二区次 | 国产亚洲精品成人av久久影院 | 国内精自线一二区永久 | 中文字幕av免费观看 | 久久久久久免费毛片精品 | ,久久福利影视 | 亚洲综合色站 | 日本高清免费中文字幕 | 不卡的av片 | 久久免费在线视频 | 91在线91拍拍在线91 | 黄色a一级视频 | 久久公开视频 | 久久一区国产 | 免费一级毛毛片 | 国产情侣一区 | 久久久久久久久黄色 | 久久手机在线视频 | 国产午夜精品一区二区三区在线观看 | 国产精品三级视频 | 视频一区二区国产 | 亚洲春色综合另类校园电影 | av一级久久| 欧美成人性网 | 国产精品毛片网 | 青青河边草观看完整版高清 | 久久99精品久久久久久秒播蜜臀 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 99电影456麻豆 | 香蕉视频在线免费看 | 亚欧日韩成人h片 | 精品日韩在线一区 | 99在线精品免费视频九九视 | 午夜av一区二区三区 | 黄色小说网站在线 | 国产男女免费完整视频 | 国产黄色免费在线观看 | 国产亚洲婷婷免费 | 欧美精品在线一区二区 | 免费观看一区二区三区视频 | 亚洲精品国产精品国自产 | 九九免费在线看完整版 | 99视频在线免费看 | 99久久99久久免费精品蜜臀 | 欧美人zozo| 一本到视频在线观看 | 国产偷在线 | 天天操天天射天天操 | 亚洲国产成人精品在线观看 | 91在线免费视频观看 | 男女免费av| 国产精品久久久久久久妇 | 精品专区一区二区 | 国产无遮挡又黄又爽馒头漫画 | 99视频在线精品国自产拍免费观看 | 激情综合五月 | aaawww| 在线观看av免费 | 久久久久久久久久久久国产精品 | 麻豆久久一区 | 最新日韩视频 | 美女免费黄视频网站 | 在线观看亚洲电影 | 欧美aa级 | 日本女人在线观看 | 日韩欧美在线观看一区二区 | 成人av网站在线 | 欧美韩日精品 | 热99在线视频 | 五月天久久精品 | 最新婷婷色 | 欧美日韩1区| 日韩欧美在线免费 | 超碰人人舔 | 亚洲在线色 | 久久三级毛片 | 国产破处在线视频 | 不卡av免费在线观看 | 99精品在线观看 | 青青网视频 | 欧美性成人 | 五月婷婷av在线 | 国产精品a久久 | 综合在线色 | 又爽又黄又刺激的视频 | 久久久精品欧美 | 免费精品久久久 | 精品主播网红福利资源观看 | 免费av在| 中文字幕888 | 久久久精品一区二区三区 | 天天操天 | 中字幕视频在线永久在线观看免费 | 天天草天天爽 | 欧美成人久久 | 国产午夜剧场 | 国产手机视频 | 欧美性做爰猛烈叫床潮 | 黄色福利网站 | av视屏在线播放 | 日av免费| 97在线观 | 在线观看精品黄av片免费 | 五月亚洲婷婷 | 久久国产精品小视频 | 麻豆久久 | 在线看一区 | 久久久久久久久久久免费av | 在线国产不卡 | 久久久精品国产免费观看一区二区 | 99在线高清视频在线播放 | 免费在线观看一级片 | 中文字幕 欧美性 | 天堂在线免费视频 | 日韩色一区二区三区 | 91在线看黄 | 在线观看成人国产 | 麻豆国产露脸在线观看 | 亚洲一区二区视频在线播放 | 久久综合狠狠综合久久激情 | 久久精品91久久久久久再现 | 九九九九热精品免费视频点播观看 | 日韩电影黄色 | 激情综合五月天 | 久久久久黄 | 国产精品久久9 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 97在线观视频免费观看 | 九九九视频精品 | 97人人超 | 91精品国产自产在线观看 | 99精品视频在线 | 三上悠亚一区二区在线观看 | 中文字幕 国产视频 | 国产精品手机在线播放 | 中文成人字幕 | 91女子私密保健养生少妇 | 国产又粗又猛又爽又黄的视频免费 | 99久久99视频只有精品 | 碰超在线97人人 | 日韩字幕 | 亚洲精品午夜视频 | 狠狠伊人 | 亚洲无在线 | 国产一级高清 | 中文字幕高清有码 | 亚洲精品h | 日韩在线免费电影 | www.夜夜爽 | 在线天堂亚洲 | 亚洲成年人免费网站 | 91香蕉嫩草 | 不卡视频国产 | 国产精品人成电影在线观看 | 精品久久久久久亚洲综合网站 | 久久国产经典 | 国产一级黄| 在线v| 国产精品美女免费看 | 天堂av在线网址 | 天天做日日做天天爽视频免费 | 一二区精品 | 婷婷5月色 | 深夜免费福利网站 | 国产高清在线免费观看 | 麻豆久久久| 欧美精品久久久久久久亚洲调教 | 欧美精品亚洲精品日韩精品 | 久久久久久久久久电影 | 日韩av视屏 | 精品久久网站 | 成人av亚洲| 亚洲激情五月 | 亚洲免费在线观看视频 | 久久黄色影院 | 九九免费精品 | 韩国av一区二区三区 | 亚洲国产精品影院 | 欧美一区二区三区免费观看 | 免费看av在线 | 蜜臀久久99静品久久久久久 | 91喷水| 91九色视频在线播放 | 黄色h在线观看 | 亚洲国产日韩欧美 | 天天天干天天射天天天操 | 午夜视频在线观看一区 | 久草视频首页 | 人人添人人澡人人澡人人人爽 | 97超碰在线视 | 美女视频黄频大全免费 | 精品久久美女 | 国产精品成人免费精品自在线观看 | av一级一片 | 97超碰在线久草超碰在线观看 | 久青草视频在线观看 | 日韩欧美高清一区二区三区 | 亚洲理论视频 | 亚洲欧美成人网 | 91桃色视频| 五月婷婷开心中文字幕 | 一级成人在线 | 精品一区二区在线免费观看 | 在线一二区 | 中文字幕在线看视频国产中文版 | 国产精品视频永久免费播放 | 超碰人人干人人 | 国产首页 | 国产中文在线观看 | 中文字幕在线观看视频一区 | 中文乱码视频在线观看 | 午夜.dj高清免费观看视频 | 99视频在线免费看 | 91成人精品一区在线播放69 | 黄色天堂在线观看 | 五月天激情视频 | 国产精品毛片 | 激情视频免费观看 | 人人精品久久 | 国产69精品久久久久久 | 女人18毛片a级毛片一区二区 | 亚洲va欧美 | 99热这里有 | 国产五月天婷婷 | 亚洲精品国产精品乱码不99热 | 日韩欧美有码在线 | 亚洲黄色在线免费观看 | 久99久精品 | 免费网站在线观看人 | 九九九九热精品免费视频点播观看 | 久久人人精品 | 久久久久国产精品www | 在线成人短视频 | 成人a级网站 | 久久视频在线观看中文字幕 | 国产一区二区久久精品 | 亚洲国产日韩av | 激情喷水 | 国产精品麻豆一区二区三区 | 亚洲精品美女久久17c | 日韩午夜小视频 | 国产麻豆传媒 | av在线免费播放 | 99精品小视频 | 久久久69| 中文字幕日韩精品有码视频 | 成人午夜电影久久影院 | 久99久精品视频免费观看 | 激情在线网址 | 男女免费视频观看 | 9ⅰ精品久久久久久久久中文字幕 | 国产一区av在线 | 国产黄色一级片在线 | 国产精品久久久久久久久久妇女 | 五月婷婷丁香六月 | 丰满少妇对白在线偷拍 | 久久精品女人毛片国产 | 一区在线观看视频 | 婷婷电影在线观看 | 黄色免费高清视频 | 久久你懂得 | 丝袜美腿亚洲综合 | 成人黄色电影在线 | 欧美在线18 | 精品国产伦一区二区三区观看体验 | 99一区二区三区 | 国产中文伊人 | 一区二区三区免费在线观看视频 | 韩国精品福利一区二区三区 | 国产亚洲人 | 黄色av免费电影 | 四虎国产视频 | 久久久精品国产一区二区三区 | 色综合天天综合网国产成人网 | 超碰免费在线公开 | 91九色最新地址 | 欧美一二三区播放 | 亚洲一片黄 | h久久| 国产三级国产精品国产专区50 | 91手机视频在线 | 五月综合激情网 | 久av在线 | 久久伦理 | 成人在线你懂得 | 欧美久久综合 | 免费在线黄色av | 久久久精品视频成人 | 五月婷婷操 | 99久久免费看 | 天天操人人要 | 中文字幕一区av | 久久电影网站中文字幕 | 欧美一级片 | 国产精品久久久免费 | 去干成人网 | 婷婷视频在线 | 精品国产伦一区二区三区观看说明 | 欧美不卡视频在线 | 免费看国产曰批40分钟 | 色网站中文字幕 | 99精品免费在线观看 | 欧美淫视频 | 欧美日韩高清一区二区 国产亚洲免费看 | 色停停五月天 | 91九色老 | av在线等 | 中文字幕在线视频一区 | 久久久精品视频成人 | 啪啪凸凸| 一区 二区 精品 | 青草视频免费观看 | 美国人与动物xxxx | 日韩三级视频在线观看 | 久久精品毛片基地 | 国产分类视频 | 国产精品v a免费视频 | 91看片成人| 夜夜婷婷| 天天爱天天草 | 丝袜足交在线 | 亚洲欧洲国产精品 | 久久久免费高清视频 | 久久国产高清 | 亚洲欧美经典 | 久久爱综合| 久久99精品国产麻豆婷婷 | 中文字幕九九 | 国产精品麻 | 新版资源中文在线观看 | 国产高清av免费在线观看 | 国产福利一区二区三区在线观看 | 在线观看久 | 综合激情 | 国产成人精品亚洲精品 | 国产视频在线播放 | 亚洲天堂va | 91视频在线自拍 | 亚洲久草视频 | 日韩精品中文字幕在线观看 | 91成人亚洲 | 一级黄色片在线播放 | 玖操| 国产日韩在线观看一区 | 狠狠做深爱婷婷综合一区 | 精品视频99 | 久久人人97超碰国产公开结果 | 精品视频免费久久久看 | 欧美伦理一区二区三区 | 在线电影日韩 | 欧美a级片免费看 | 国产麻豆成人传媒免费观看 | 国产丝袜 | 欧亚日韩精品一区二区在线 | 婷婷网在线 | 在线中文字幕播放 | 日韩成片 | 国产精品福利无圣光在线一区 | 国产人成一区二区三区影院 | 天天透天天插 | 久久97超碰| 搡bbbb搡bbb视频 | 久久久免费av | 一区在线电影 | 国产手机视频在线 | www.少妇| 国产精品久久久久久欧美 | 国产亚洲精品日韩在线tv黄 | 人人网人人爽 | 日韩欧美成人网 | 日韩精品一区二区免费视频 | 精品免费观看视频 | 日本午夜免费福利视频 | 成人日批视频 | 免费看91的网站 | 久久99精品国产一区二区三区 | 日本中文在线播放 | 欧美日本在线观看视频 | 九九热只有精品 | 亚洲第一区在线观看 | 欧美日韩在线播放 | av一区在线播放 | 天天综合操 | 日韩一区二区三区高清在线观看 | 久久国产成人午夜av影院潦草 | 又黄又爽又湿又无遮挡的在线视频 | 天天操天天吃 | 国产偷国产偷亚洲清高 | 五月天激情综合 | 久久免费看片 | 亚洲一二视频 | 一本一道久久a久久精品 | 日韩av快播电影网 | 国精产品一二三线999 | 亚洲成人av电影 | 国产精品婷婷午夜在线观看 | 日韩精品电影在线播放 | 国产你懂的在线 | 99视频免费观看 | 天堂在线一区二区三区 | 国产成人精品a | 天天爽网站 | 激情视频免费在线 | 黄色在线视频网址 | 日本少妇高清做爰视频 | free. 性欧美.com | 成人免费视频观看 | 精品一区二区久久久久久久网站 | 久久视频精品在线 | 五月天堂网 | 色www.| av千婊在线免费观看 | 超碰国产在线观看 | 久久精品婷婷 | 亚洲日本va午夜在线电影 | 国产不卡在线播放 | 欧美一级在线观看视频 | 午夜在线观看 | 中国美女一级看片 | 天天色宗合 | 中文在线天堂资源 | 天天天天天天天操 | 国产在线色 | 亚洲欧美婷婷六月色综合 | 久久五月情影视 | 国产亚洲aⅴaaaaaa毛片 | 国产精品一区二区吃奶在线观看 | 国产在线观看av | 欧美日产在线观看 | 久影院 | 亚洲免费观看视频 | 久久国产视频网站 | 日韩成人免费在线电影 | 国产不卡在线 | 天天干天天插 | 日韩经典一区二区三区 | 日韩电影一区二区三区 | 国产精品少妇 | 午夜婷婷综合 | 国产在线不卡精品 | 亚洲狠狠操 | 亚洲国产一区二区精品专区 | 日韩色爱 | 国产精品videossex国产高清 | 男女啪啪免费网站 | 日韩欧美在线观看 | 色综合天天色综合 | 成人黄色视| 国产精品淫 | 国产成人精品av在线观 | 美女视频久久黄 | 精品国产乱码一区二 | 亚洲在线综合 | 西西大胆免费视频 | 91精品国产自产在线观看永久 | 日韩精选在线观看 | 天天躁日日躁狠狠躁av中文 | 手机看片午夜 | 国产精品综合在线 | 久久免费视频1 | 婷婷免费在线视频 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 久草久 | 在线观看视频91 | 日韩中午字幕 | 日韩高清二区 | 亚洲欧美激情插 | 久久免费福利视频 | 亚洲成人黄 | 国产一区二区不卡在线 | 久草视频在线资源站 | 视频国产一区二区三区 | 中文视频一区二区 | 日韩精品久久久久久久电影99爱 | 日本在线观看一区 | 亚洲男男gaygay无套同网址 | 国产色综合天天综合网 | 国产女做a爱免费视频 | 亚洲黄色小说网址 | 中文字幕在线一二 | 久久精品91久久久久久再现 | 国产一级黄色电影 | 国产成人福利 | 欧美精品中文在线免费观看 | 中文字幕日韩国产 | 三级毛片视频 | 色在线高清| 日韩资源在线播放 | 99色资源 | 欧美一区二区三区在线观看 | 欧美精品久久久久久久久久丰满 | 丁香婷婷在线观看 | 欧美日韩免费网站 | 久久精品精品电影网 | 国产一区二区在线视频观看 | 中文永久免费观看 | 在线观看视频国产 | 成人a视频片观看免费 | 九九热精 | 亚洲黄网站 | 在线国产片 | 97国产精品视频 | 中文字幕av全部资源www中文字幕在线观看 | 日韩色av色资源 | 97成人精品视频在线播放 | 不卡的av片| 五月天中文字幕 | 精品久久久久国产免费第一页 | 欧美精品亚洲精品日韩精品 | 欧美一区二区精品在线 | 午夜电影av | av品善网 | 久久中文欧美 | 成人欧美一区二区三区在线观看 | 国产精品黄色在线观看 | 亚洲三级视频 | 91chinesexxx| 九九久久久久久久久激情 | 国产在线不卡 | 成人免费在线视频观看 | 91| 国产精品综合久久 | 国产午夜激情视频 | 日韩在线视频观看免费 | 天天摸天天舔天天操 | 免费高清在线观看成人 | 在线观看中文字幕dvd播放 | 日日爽日日操 | 国产精品免费观看网站 | 国产精品原创在线 | 国产在线国偷精品产拍免费yy | 欧美伦理电影一区二区 | 成人永久视频 | 亚洲一级在线观看 | 亚洲午夜精品电影 | 亚洲男男gaygay无套同网址 | 色综合久久久久久久 | 亚洲国产精品第一区二区 | 66av99精品福利视频在线 | 日本在线视频一区二区三区 | 中文字幕有码在线 | 成人一级在线观看 | 日本久久视频 | 六月丁香在线观看 | 欧美日韩免费在线观看视频 | 亚洲精品午夜久久久 | 午夜国产在线 | 色综合www| 992tv又爽又黄的免费视频 | 国产91在 | 黄网站色欧美视频 | 91精品国产九九九久久久亚洲 | 日韩免费视频观看 | 六月久久婷婷 | 国产精品乱码高清在线看 | 免费网站黄色 | 亚洲成成品网站 | 天天天天爽 | 成年人黄色免费视频 | 91精品国产99久久久久久久 | 狠狠操欧美 | 成人aⅴ视频 | 色无五月| 国产精品毛片一区二区三区 | 亚洲最新视频在线播放 | 五月婷婷免费 | 日韩av一区二区在线播放 | 色综合五月| 波多野结衣日韩 | 国产精品精品视频 | 亚洲精品中文字幕在线 | 国产精品大全 | 夜夜夜夜操 | 五月婷婷视频 | 国产黄在线观看 | 国产99久久久国产精品免费二区 | 色婷婷影视 | 久久免费视频2 | 国产成人在线观看免费 | 91看片在线播放 | 2020天天干夜夜爽 | 国产视频在线观看免费 | 99久久精品日本一区二区免费 | 激情久久久久久久久久久久久久久久 | 999久久久久 | 免费开视频 | 在线观看视频色 | 天天色成人 | 国产五月色婷婷六月丁香视频 | 久久久wwww| 久久久免费毛片 | 国产91丝袜在线播放动漫 | 91麻豆精品国产自产在线游戏 | 国产精品嫩草影视久久久 | 特级毛片网 | 亚洲专区免费观看 | 国产中文字幕在线视频 | 欧美日韩大片在线观看 | 国产高清日韩欧美 | 久保带人 | 国产涩涩在线观看 | 毛片一级免费一级 | www.夜夜操 | 婷婷色5月 | 97超碰福利久久精品 | 天天玩夜夜操 | 成人免费视频网站在线观看 | 在线观看的av | 精品极品在线 | 中文在线字幕免费观 | 99热精品久久 | 日韩精品免费一线在线观看 | 色www精品视频在线观看 | 精品国产精品国产偷麻豆 | 午夜精品久久久久久久99水蜜桃 | 中文字幕激情 | 最近中文字幕在线 | 特级西西444www高清大视频 | 久久久久在线视频 | 午夜av免费在线观看 | 一级片观看 | 精品久久久久久久久久久久久久久久久久 | 天天天干夜夜夜操 | 亚洲免费高清视频 | 久草免费在线观看 | 日本中文在线 | av电影免费在线播放 | 亚洲日本一区二区在线 | 日本丰满少妇免费一区 | 日韩欧美一区视频 | 久久亚洲影视 | 在线a亚洲视频播放在线观看 | 国产在线一区观看 | 日韩视频在线观看免费 | 亚洲性少妇性猛交wwww乱大交 | 成人av免费在线看 | 久久99国产精品自在自在app | 国产精品一区二区三区久久久 | 91九色在线观看 | 欧美性大胆 | 黄色成人91| 色.www | 国产成人久久精品一区二区三区 | 二区视频在线观看 | 亚洲成av人片在线观看香蕉 | 99国产精品久久久久老师 | 久久国产免 | 欧美激情亚洲综合 | 久久久夜色 | 超碰97人人在线 | 一区二区精品在线视频 | 免费av在线网 | 狠狠色噜噜狠狠狠狠 | 久草在线视频资源 | 亚州精品国产 | 亚洲高清在线精品 | 亚洲综合视频在线 | 欧美精品在线视频 | 亚洲国产黄色片 | 亚洲天堂网站视频 | 日韩av播放在线 | 国产午夜一级毛片 | 五月婷婷久久丁香 | 亚洲区另类春色综合小说校园片 | 免费人成网 | 日韩精品2区 | 久久xxxx | 国产精品国产三级在线专区 | 超碰人人超| 日韩免费成人av | 96久久久| 亚洲欧美精品一区 | 成人av免费 | 日韩中文字幕电影 | 国产黄网在线 | 亚洲成人资源在线观看 | 青青河边草手机免费 | 天天爱天天操 | 免费观看全黄做爰大片国产 | 日韩精品观看 | 亚洲午夜精品电影 | 在线精品视频在线观看高清 | 亚洲精品国产综合99久久夜夜嗨 | 欧美日韩精品影院 | 欧美在线资源 | 精品在线一区二区 | 在线观看免费91 | 狠狠干免费 | 免费a视频 | 日日夜夜人人天天 | 黄色电影在线免费观看 | 久热av在线 | 超碰免费97 | 成人 亚洲 欧美 | 国产精品久久久久久久久久直播 | 亚洲激情视频 | 免费av网站在线看 | 国产黄色在线网站 | 久色 网 | 中文字幕中文 | 久青草影院 | 中文字幕av最新 | 欧美一级电影片 | 永久免费观看视频 | 国产最新视频在线观看 | 久久久夜色 | 精品久久电影 | 超碰97人人干 | 免费黄色看片 | 在线免费观看黄色小说 | 国产精品一区二区久久精品爱微奶 | 日韩一二区在线观看 | 九九视频这里只有精品 | 欧美亚洲国产一卡 | 狠狠操精品 | 免费三级黄色 | 欧美一区二区三区不卡 | 狠狠五月天| 中文字幕不卡在线88 | 天天天干 | 亚洲日韩中文字幕在线播放 | 午夜精品中文字幕 | 999成人国产 | 手机在线欧美 | 日韩av成人在线观看 | 91最新网址在线观看 | 欧美日韩在线视频免费 | 免费观看xxxx9999片 | 免费人成在线观看网站 | 天天操天天干天天插 | 成人免费共享视频 | 日韩av黄 | 91av官网 | 久久久久久久久久免费 | 久久av一区二区三区亚洲 | 91精品国产亚洲 | 久久久久久久久影视 | 97视频免费 | 久久国产精品成人免费浪潮 | 日韩欧美高清视频在线观看 | 色婷婷 亚洲 | 国产精品热 | 久青草影院 | 精品一区电影国产 | 国产精品电影在线 | 国产成人一区二区三区电影 | 欧美伦理一区二区三区 | 在线观看91视频 | 一级大片在线观看 | 欧美日韩视频一区二区三区 | 在线免费高清一区二区三区 | 97成人资源站 | 五月婷婷在线播放 | 国产精品毛片一区二区三区 | 91在线视频 | 国产一区二区视频在线播放 | 国产999在线观看 | 天天操天天操天天操天天操天天操 | 久久爱www.| 日韩在线观看你懂得 | 国产一级片毛片 | 国产91免费看 | 亚洲视频综合在线 | 成人黄色毛片视频 | 免费观看一级一片 | avav99| 一区二区三区不卡在线 | 日韩免费一级a毛片在线播放一级 | 国产精品伦一区二区三区视频 | 免费成人av网站 | 在线99视频 | 国产精品一区二区白浆 | 韩国精品福利一区二区三区 | 伊色综合久久之综合久久 | 国产青草视频在线观看 | 99精品视频播放 | 国产黄色片久久 | 成人三级黄色 | 日韩精品久久久久久久电影竹菊 | 美女网站黄在线观看 | 色偷偷97 | 精品综合久久久 | 精品美女视频 | 亚洲一级黄色片 | 日日夜夜综合 | 国产群p视频 | 操处女逼 | www.色五月.com | 日本婷婷色| 国产精品一区二区三区四 | 天天天插 | 亚洲热久久 | 99精品在线视频播放 | 国产无吗一区二区三区在线欢 | 黄色软件网站在线观看 | 91福利影院在线观看 | 国产精品专区在线 | 91综合久久一区二区 | 久草爱视频 | 一区二区三区动漫 | 免费网站色 | 99精品乱码国产在线观看 | 怡红院av久久久久久久 | 日韩一区在线播放 | 黄色.com| 视频一区二区三区视频 | 五月香婷 | 精品亚洲视频在线观看 | 色欧美综合 | 在线观看 国产 | a视频在线 | 久久久久久久亚洲精品 | 久久只精品99品免费久23小说 | 91成人免费观看视频 | ww视频在线观看 | 色偷偷97 | 少妇高潮流白浆在线观看 | 日本aaaa级毛片在线看 | 亚洲久草在线 | 国产系列在线观看 | 天天色天天射综合网 | 黄网av在线| 国产系列精品av | 国产高清网站 | 免费高清在线观看电视网站 | 亚洲九九 | 伊人狠狠 | 国产精品mv在线观看 | 狠狠躁天天躁综合网 | 69国产成人综合久久精品欧美 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 美女黄色网在线播放 | 中文字幕av电影下载 | 夜夜操狠狠操 | 国产自偷自拍 | 国内精品久久久久久久影视麻豆 | 99re中文字幕| 一级黄色免费网站 | 中文字幕av日韩 | 亚洲免费a | 国产视频一区二区在线观看 | 国产精品18久久久久久vr | 日韩在线视 | 蜜桃久久久| 国产精品久久久久久久久久久久午 | 97免费| 99视频在线免费观看 | 欧美激情视频一区二区三区免费 | 久久久www成人免费毛片 | 国产成人一区二区精品非洲 | 91丨九色丨蝌蚪丨老版 | 免费黄色av电影 | 国产免费黄色 | 日韩有码在线观看视频 | 婷婷视频在线 | 国产91国语对白在线 | 国产一区二区三区网站 | 亚洲国产精品一区二区久久hs | 天天操夜夜逼 | 色播激情五月 | 粉嫩高清一区二区三区 | 亚洲精品在线观看av |