精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

高效使用Python可視化工具Matplotlib

開發 后端
Matplotlib是Python中最常用的可視化工具之一,可以非常方便地創建海量類型的2D圖表和一些基本的3D圖表。本文主要介紹了在學習Matplotlib時面臨的一些挑戰,為什么要使用Matplotlib,并推薦了一個學習使用Matplotlib的步驟。

Matplotlib是Python中最常用的可視化工具之一,可以非常方便地創建海量類型的2D圖表和一些基本的3D圖表。本文主要介紹了在學習Matplotlib時面臨的一些挑戰,為什么要使用Matplotlib,并推薦了一個學習使用Matplotlib的步驟。

簡介

對于新手來說,進入Python可視化領域有時可能會令人感到沮喪。Python有很多不同的可視化工具,選擇一個正確的工具有時是一種挑戰。 例如,即使兩年過去了,這篇《Overview of Python Visualization Tools》是引導人們到這個網站的***帖子之一。 在那篇文章中,我對matplotlib留下了一些陰影,并在分析過程中不再使用。 然而,在使用諸如pandas,scikit-learn,seaborn和其他數據科學技術棧的python工具后,覺得丟棄matplotlib有點過早了。說實話,之前我不太了解matplotlib,也不知道如何在工作流程中有效地使用。

現在我花時間學習了其中的一些工具,以及如何使用matplotlib,已經開始將matplotlib看作是不可或缺的工具了。這篇文章將展示我是如何使用matplotlib的,并為剛入門的用戶或者沒時間學習matplotlib的用戶提供一些建議。我堅信matplotlib是python數據科學技術棧的重要組成部分,希望本文能幫助大家了解如何將matplotlib用于自己的可視化。

為什么對matplotlib都是負面評價?

在我看來,新用戶學習matplotlib之所以會面臨一定的挑戰,主要有以下幾個原因。

首先,matplotlib有兩種接口。***種是基于MATLAB并使用基于狀態的接口。第二種是面向對象的接口。為什么是這兩種接口不在本文討論的范圍之內,但是知道有兩種方法在使用matplotlib進行繪圖時非常重要。

兩種接口引起混淆的原因在于,在stack overflow社區和谷歌搜索可以獲得大量信息的情況下,新用戶對那些看起來有些相似但不一樣的問題,面對多個解決方案會感到困惑。從我自己的經歷說起。回顧一下我的舊代碼,一堆matplotlib代碼的混合——這對我來說非常混亂(即使是我寫的)。

關鍵點

matplotlib的新用戶應該學習使用面向對象的接口。

matplotlib的另一個歷史性挑戰是,一些默認風格選項相當沒有吸引力。 在R語言世界里,可以用ggplot生成一些相當酷的繪圖,相比之下,matplotlib的選項看起來有點丑。令人欣慰的是matplotlib 2.0具有更美觀的樣式,以及非常便捷對可視化的內容進行主題化的能力。

使用matplotlib我認為第三個挑戰是,當繪制某些東西時,應該單純使用matplotlib還是使用建立在其之上的類似pandas或者seaborn這樣的工具,你會感到困惑。任何時候都可以有多種方式來做事,對于新手或不常用matplotlib的用戶來講,遵循正確的路徑是具有挑戰性的。將這種困惑與兩種不同的API聯系起來,是解決問題的秘訣。

為什么堅持要用matplotlib?

盡管有這些問題,但是我慶幸有matplotlib,因為它非常強大。這個庫允許創建幾乎任何你可以想象的可視化。此外,圍繞著它還有一個豐富的python工具生態系統,許多更先進的可視化工具用matplotlib作為基礎庫。如果在python數據科學棧中進行任何工作,都將需要對如何使用matplotlib有一個基本的了解。這是本文的其余部分的重點——介紹一種有效使用matplotlib的基本方法。

基本前提

如果你除了本文之外沒有任何基礎,建議用以下幾個步驟學習如何使用matplotlib:

  1. 學習基本的matplotlib術語,尤其是什么是圖和坐標軸
  2. 始終使用面向對象的接口,從一開始就養成使用它的習慣
  3. 用基礎的pandas繪圖開始你的可視化學習
  4. 用seaborn進行更復雜的統計可視化
  5. 用matplotlib來定制pandas或者seaborn可視化

這幅來自matplotlib faq的圖非常經典,方便了解一幅圖的不同術語。

 

大多數術語都非常直接,但要記住的要點是,Figure是最終的圖像,可能包含一個或多個坐標軸。坐標軸代表一個單獨的劃分。一旦你了解這些內容,以及如何通過面向對象的API訪問它們,下面的步驟才能開始進行。

這些術語知識有另一個好處,當你在網上看某些東西時,就有了一個起點。如果你花時間了解了這一點,才會理解matplotlib API的其余部分。此外,許多python的高級軟件包,如seaborn和ggplot都依賴于matplotlib。因此,了解這些基礎知識后再學那些功能更強大的框架會容易一些。

***,我不是說你應該避免選擇例如ggplot(aka ggpy),bokeh,plotly或者altair等其他更好的工具。我只是認為你需要從對matplotlib + pandas + seaborn 有一個基本了解開始。一旦理解了基本的可視化技術,就可以探索其他工具,并根據自己的需要做出明智的選擇。

入門

本文的其余部分將作為一個入門教程,介紹如何在pandas中進行基本的可視化創建,并使用matplotlib自定義最常用的項目。一旦你了解了基本過程,進一步的定制化創建就相對比較簡單。

重點講一下我遇到的最常見的繪圖任務,如標記軸,調整限制,更新繪圖標題,保存圖片和調整圖例。如果你想跟著繼續學習,在鏈接https://github.com/chris1610/pbpython/blob/master/notebooks/Effectively-Using-Matplotlib.ipynb 中包含附加細節的筆記,應該非常有用。

準備開始,我先引入庫并讀入一些數據:

  1. import pandas as pd 
  2.  
  3. import matplotlib.pyplot as plt 
  4.  
  5. from matplotlib.ticker import FuncFormatter 
  6.  
  7.   
  8.  
  9. df = pd.read_excel("https://github.com/chris1610/pbpython/blob/master/data/sample-salesv3.xlsx?raw=true"
  10.  
  11. df.head() 

 

這是2014年的銷售交易數據。為了使這些數據簡短一些,我將對數據進行聚合,以便我們可以看到前十名客戶的總購買量和總銷售額。為了清楚我還會在繪圖中重新命名列。

  1. top_10 = (df.groupby('name')['ext price''quantity'].agg({'ext price''sum''quantity''count'}) 
  2.  
  3. .sort_values(by='ext price', ascending=False))[:10].reset_index() 
  4.  
  5. top_10.rename(columns={'name''Name''ext price''Sales''quantity''Purchases'}, inplace=True 

下面是數據的處理結果。

 

現在,數據被格式化成一個簡單的表格,我們來看如何將這些結果繪制成條形圖。

如前所述,matplotlib有許多不同的樣式可用于渲染繪圖,可以用plt.style.available查看系統中有哪些可用的樣式。

  1. plt.style.available 
  1. ['seaborn-dark'
  2.  
  3. 'seaborn-dark-palette'
  4.  
  5. 'fivethirtyeight'
  6.  
  7. 'seaborn-whitegrid'
  8.  
  9. 'seaborn-darkgrid'
  10.  
  11. 'seaborn'
  12.  
  13. 'bmh'
  14.  
  15. 'classic'
  16.  
  17. 'seaborn-colorblind'
  18.  
  19. 'seaborn-muted'
  20.  
  21. 'seaborn-white'
  22.  
  23. 'seaborn-talk'
  24.  
  25. 'grayscale'
  26.  
  27. 'dark_background'
  28.  
  29. 'seaborn-deep'
  30.  
  31. 'seaborn-bright'
  32.  
  33. 'ggplot'
  34.  
  35. 'seaborn-paper'
  36.  
  37. 'seaborn-notebook'
  38.  
  39. 'seaborn-poster'
  40.  
  41. 'seaborn-ticks'
  42.  
  43. 'seaborn-pastel' 

這樣簡單使用一個樣式:

  1. plt.style.use('ggplot'

我鼓勵大家嘗試不同的風格,看看你喜歡哪些。

現在我們準備好了一個更美觀的樣式,***步是使用標準的pandas繪圖功能繪制數據:

  1. top_10.plot(kind='barh', y="Sales", x="Name"

 

我推薦先使用pandas繪圖,是因為它是一種快速簡便構建可視化的方法。 由于大多數人可能已經在pandas中進行過一些數據處理/分析,所以請先從基本的繪圖開始。

定制化繪圖

假設你對這個繪圖的要點很滿意,下一步就是定制它。使用pandas繪圖功能定制(如添加標題和標簽)非常簡單。但是,你可能會發現自己的需求在某種程度上超越該功能。這就是我建議養成這樣做的習慣的原因:

  1. fig, ax = plt.subplots() 
  2.  
  3. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax)  

得到的圖看起來與原始圖看起來相同,但是我們向plt.subplots() 添加了一個額外的調用,并將ax傳遞給繪圖函數。為什么要這樣做? 記得當我說在matplotlib中要訪問坐標軸和數字至關重要嗎?這就是我們在這里完成的工作。將來任何定制化都將通過ax或fig對象完成。

我們得益于pandas快速繪圖,獲得了訪問matplotlib的所有權限。我們現在可以做什么呢?用一個例子來展示。另外,通過命名約定,可以非常簡單地把別人的解決方案改成適合自己獨特需求的方案。

假設我們要調整x限制并更改一些坐標軸的標簽?現在坐標軸保存在ax變量中,我們有很多的控制權:

  1. fig, ax = plt.subplots() 
  2.  
  3. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax) 
  4.  
  5. ax.set_xlim([-10000, 140000]) 
  6.  
  7. ax.set_xlabel('Total Revenue'
  8.  
  9. ax.set_ylabel('Customer'); 

 

下面是一個快捷方式,可以用來更改標題和兩個標簽:

  1. fig, ax = plt.subplots() 
  2.  
  3. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax) 
  4.  
  5. ax.set_xlim([-10000, 140000]) 
  6.  
  7. ax.set(title='2014 Revenue', xlabel='Total Revenue', ylabel='Customer'  

 

為了進一步驗證這種方法,還可以調整圖像的大小。通過plt.subplots() 函數,可以用英寸定義figsize。也可以用ax.legend().set_visible(False)來刪除圖例。

  1. fig, ax = plt.subplots(figsize=(5, 6)) 
  2.  
  3. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax) 
  4.  
  5. ax.set_xlim([-10000, 140000]) 
  6.  
  7. ax.set(title='2014 Revenue', xlabel='Total Revenue'
  8.  
  9. ax.legend().set_visible(False  

 

 

 

基于很多原因你可能想要調整一下這個圖。看著最別扭的地方是總收入數字的格式。 Matplotlib可以通過FuncFormatter來幫我們實現。這個功能可以將用戶定義的函數應用于值,并返回一個格式整齊的字符串放置在坐標軸上。

下面是一個貨幣格式化函數,可以優雅地處理幾十萬范圍內的美元格式:

  1. def currency(x, pos): 
  2.  
  3.     'The two args are the value and tick position' 
  4.  
  5.     if x >= 1000000: 
  6.  
  7.         return '${:1.1f}M'.format(x*1e-6) 
  8.  
  9.     return '${:1.0f}K'.format(x*1e-3)  

現在我們有一個格式化函數,需要定義它并將其應用到x軸。以下是完整的代碼:

  1. fig, ax = plt.subplots() 
  2.  
  3. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax) 
  4.  
  5. ax.set_xlim([-10000, 140000]) 
  6.  
  7. ax.set(title='2014 Revenue', xlabel='Total Revenue', ylabel='Customer'
  8.  
  9. formatter = FuncFormatter(currency) 
  10.  
  11. ax.xaxis.set_major_formatter(formatter) 
  12.  
  13. ax.legend().set_visible(False

 

 

 

這樣更美觀,也是一個很好的例子,展示如何靈活地定義自己的問題解決方案。

我們***要去探索的一個自定義功能是通過添加注釋到繪圖。繪制一條垂直線,可以用ax.axvline()。添加自定義文本,可以用ax.text()。

在這個例子中,我們將繪制一條平均線,并顯示三個新客戶的標簽。 下面是完整的代碼和注釋,把它們放在一起。

  1. Create the figure and the axes 
  2.  
  3. fig, ax = plt.subplots() 
  4.  
  5.   
  6.  
  7. # Plot the data and get the averaged 
  8.  
  9. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax) 
  10.  
  11. avg = top_10['Sales'].mean() 
  12.  
  13.   
  14.  
  15. Set limits and labels 
  16.  
  17. ax.set_xlim([-10000, 140000]) 
  18.  
  19. ax.set(title='2014 Revenue', xlabel='Total Revenue', ylabel='Customer'
  20.  
  21.   
  22.  
  23. Add a line for the average 
  24.  
  25. ax.axvline(x=avg, color='b', label='Average', linestyle='--', linewidth=1) 
  26.  
  27.   
  28.  
  29. # Annotate the new customers 
  30.  
  31. for cust in [3, 5, 8]: 
  32.  
  33.     ax.text(115000, cust, "New Customer"
  34.  
  35.   
  36.  
  37. # Format the currency 
  38.  
  39. formatter = FuncFormatter(currency) 
  40.  
  41. ax.xaxis.set_major_formatter(formatter) 
  42.  
  43.   
  44.  
  45. # Hide the legend 
  46.  
  47. ax.legend().set_visible(False  

 

 

 

雖然這可能不是讓人感到興奮(眼前一亮)的繪圖方式,但它展示了你在用這種方法時有多大權限。

圖形和圖像

到目前為止,我們所做的所有改變都是單個圖形。幸運的是,我們也有能力在圖上添加多個圖形,并使用各種選項保存整個圖像。

如果決定要把兩幅圖放在同一個圖像上,我們應對如何做到這一點有基本了解。 首先,創建圖形,然后創建坐標軸,然后將其全部繪制在一起。我們可以用plt.subplots()來完成:

  1. fig, (ax0, ax1) = plt.subplots(nrows=1, ncols=2, sharey=True, figsize=(7, 4)) 

在這個例子中,用nrows和ncols來指定大小,這樣對新用戶來說比較清晰。在示例代碼中,經常看到像1,2這樣的變量。我覺得使用命名的參數,之后在查看代碼時更容易理解。

用sharey = True這個參數,以便yaxis共享相同的標簽。

這個例子也很好,因為各個坐標軸被解壓縮到ax0和ax1。有這些坐標軸軸,你可以像上面的例子一樣繪制圖形,但是在ax0和ax1上各放一個圖。 

  1. # Get the figure and the axes 
  2.  
  3. fig, (ax0, ax1) = plt.subplots(nrows=1,ncols=2, sharey=True, figsize=(7, 4)) 
  4.  
  5. top_10.plot(kind='barh', y="Sales", x="Name", ax=ax0) 
  6.  
  7. ax0.set_xlim([-10000, 140000]) 
  8.  
  9. ax0.set(title='Revenue', xlabel='Total Revenue', ylabel='Customers'
  10.  
  11.   
  12.  
  13. # Plot the average as a vertical line 
  14.  
  15. avg = top_10['Sales'].mean() 
  16.  
  17. ax0.axvline(x=avg, color='b', label='Average', linestyle='--', linewidth=1) 
  18.  
  19.   
  20.  
  21. # Repeat for the unit plot 
  22.  
  23. top_10.plot(kind='barh', y="Purchases", x="Name", ax=ax1) 
  24.  
  25. avg = top_10['Purchases'].mean() 
  26.  
  27. ax1.set(title='Units', xlabel='Total Units', ylabel=''
  28.  
  29. ax1.axvline(x=avg, color='b', label='Average', linestyle='--', linewidth=1) 
  30.  
  31.   
  32.  
  33. # Title the figure 
  34.  
  35. fig.suptitle('2014 Sales Analysis', fontsize=14, fontweight='bold'); 
  36.  
  37.   
  38.  
  39. # Hide the legends 
  40.  
  41. ax1.legend().set_visible(False
  42.  
  43. ax0.legend().set_visible(False 

 

 

 

到目前為止,我一直用jupyter notebook,借助%matplotlib內聯指令來顯示圖形。但是很多時候,需要以特定格式保存數字,和其他內容一起展示。

Matplotlib支持許多不同格式文件的保存。 你可以用fig.canvas.get_supported_filetypes()查看系統支持的格式:

  1. fig.canvas.get_supported_filetypes() 
  1. {'eps''Encapsulated Postscript'
  2.  
  3. 'jpeg''Joint Photographic Experts Group'
  4.  
  5. 'jpg''Joint Photographic Experts Group'
  6.  
  7. 'pdf''Portable Document Format'
  8.  
  9. 'pgf''PGF code for LaTeX'
  10.  
  11. 'png''Portable Network Graphics'
  12.  
  13. 'ps''Postscript'
  14.  
  15. 'raw''Raw RGBA bitmap'
  16.  
  17. 'rgba''Raw RGBA bitmap'
  18.  
  19. 'svg''Scalable Vector Graphics'
  20.  
  21. 'svgz''Scalable Vector Graphics'
  22.  
  23. 'tif''Tagged Image File Format'
  24.  
  25. 'tiff''Tagged Image File Format' 

由于我們有fig對象,我們可以用多個選項來保存圖像:

  1. fig.savefig('sales.png', transparent=False, dpi=80, bbox_inches="tight"

上面的代碼把圖像保存為背景不透明的png。還指定了分辨率dpi和bbox_inches =“tight”來盡量減少多余的空格。

結論

希望這個過程有助于你了解如何在日常的數據分析中更有效地使用matplotlib。 如果在做分析時養成使用這種方法的習慣,你應該可以快速定制出任何你需要的圖像。

作為***的福利,我引入一個快速指南來總結所有的概念。希望這有助于把這篇文章聯系起來,并為今后使用參考提供方便。 

責任編輯:龐桂玉 來源: Python開發者
相關推薦

2017-07-27 09:49:37

Python工具Matplotlib

2019-06-23 15:44:24

Matplotlib可視化圖表

2022-10-21 15:47:59

測試工具鴻蒙

2015-12-02 09:44:04

Python視化工具

2020-07-16 15:10:46

工具可視化Python

2024-12-24 12:00:00

Matplotlib可視化分析Python

2021-03-30 10:10:37

PyTorch可視化工具命令

2017-07-03 16:44:10

數據庫MongoDBNoSQL

2020-11-15 18:00:49

開源可視化工具Python

2023-03-06 08:03:10

Python可視化工具

2021-03-18 09:07:13

日志可視化工具Devops

2021-04-11 09:51:25

Redis可視化工具

2022-09-22 15:42:02

機器學習異常值工具

2020-12-15 09:43:20

Python可視化工具網絡應用

2017-07-25 13:42:00

大數據可視化工具

2020-04-20 08:22:41

SOC安全工具網絡攻擊

2019-10-14 15:51:40

可視化技術微軟數據庫

2018-05-31 08:25:13

誤區工具可視化

2022-11-15 15:14:05

2022-05-07 09:02:27

數據可視化工具庫
點贊
收藏

51CTO技術棧公眾號

日韩av手机在线播放| 激情五月婷婷六月| 国产精品一区二区三区在线免费观看| 999久久久亚洲| 亚洲成人xxx| 日本xxxxxxx免费视频| 免费高清完整在线观看| 国产成人在线视频免费播放| 欧美一区二区三区……| 久久嫩草捆绑紧缚| 欧美亚洲tv| 欧美一区二区网站| 日韩av片在线看| 成人在线免费看片| 久久久精品日韩欧美| 国产精品中文在线| 久久露脸国语精品国产91| 日韩精品一区二区三区免费观影| 欧美大片日本大片免费观看| 欧美私人情侣网站| 男女视频在线| 亚洲丝袜精品丝袜在线| 欧美精品一区二区视频 | 欧美日韩国产中文精品字幕自在自线 | 亚洲熟女综合色一区二区三区| 色偷偷综合网| 亚洲精品一区二区久| 欧美人与性动交α欧美精品| a屁视频一区二区三区四区| 午夜久久久久久久久| 国产免费一区二区三区四在线播放| 欧美日韩国产综合视频| 成人午夜视频福利| 91在线高清免费观看| 少妇久久久久久久| 国产一区二区高清| 久久久久久久999| 91高清免费观看| 日本a口亚洲| 亚洲视频电影图片偷拍一区| 日本道中文字幕| 91午夜精品| 欧美一级日韩免费不卡| 911福利视频| 成人高清一区| 欧美熟乱第一页| 污污视频网站免费观看| 婷婷六月国产精品久久不卡| 欧美日韩国产精品一区二区不卡中文| 青青在线视频免费观看| h视频在线免费观看| 一区在线中文字幕| 一区精品在线| 黄色网页在线观看| 亚洲欧美偷拍卡通变态| 青少年xxxxx性开放hg| 欧美性猛交xxx乱大交3蜜桃| 中文字幕精品综合| 亚洲精品久久久久久一区二区| 成人在线免费看| 国产婷婷色一区二区三区在线| 奇米视频888战线精品播放| 日本免费不卡| 日本一区二区三级电影在线观看| 日韩福利一区二区三区| www.久久热.com| 国产欧美精品日韩区二区麻豆天美| 茄子视频成人在线观看 | 视频免费一区二区| 欧美xxxx老人做受| 国产精品伦子伦| 色棕色天天综合网| 中文字幕久热精品在线视频| 女人裸体性做爰全过| 香蕉视频国产精品| 欧美激情视频在线免费观看 欧美视频免费一| 三上悠亚在线观看视频| 欧美影视一区| 57pao精品| 中文字幕视频在线播放| 国内精品久久久久影院色| 99视频免费观看蜜桃视频| 天天色综合av| 国产欧美精品在线观看| 91嫩草国产丨精品入口麻豆| 91超碰在线播放| 日本高清不卡在线观看| 91亚洲免费视频| 都市激情亚洲| 怡红院精品视频| 日韩一级片大全| 中文亚洲欧美| 国产精品一区二区三区久久 | 国产一区视频在线看| 成人av中文| 韩国中文免费在线视频| 亚洲免费在线播放| wwwxxx黄色片| 午夜精品在线| 在线日韩精品视频| 国产在线视频你懂的| 日本怡春院一区二区| 99国产在线| av在线免费一区| 亚洲国产成人91porn| 91极品尤物在线播放国产| 中文无码日韩欧| 在线视频欧美日韩精品| 国产无码精品一区二区| 免费不卡在线观看| 久久人人97超碰人人澡爱香蕉| 伊人免费在线| 一本到一区二区三区| 中文字幕在线播放一区二区| 国产精品欧美日韩一区| 午夜精品久久久久久久白皮肤 | 精品综合在线| 成人高清免费在线| 欧美影片第一页| 香蕉视频黄色在线观看| 欧美日韩免费观看一区=区三区| 欧美一区在线直播| 亚洲成人精品女人久久久| 国产精品三级在线观看| 日韩视频第二页| 久久中文资源| 久久久久久有精品国产| 国产精品热久久| 亚洲国产精品高清| 99久久久无码国产精品6| 91精品短视频| 欧美日韩aaaa| 99草在线视频| 日韩毛片精品高清免费| 无码人妻丰满熟妇区五十路百度| 国产厕拍一区| 欧美丰满少妇xxxxx| 97人妻精品一区二区三区| 日本一区二区三区四区在线视频 | 精品国一区二区三区| 日韩激情小视频| 另类中文字幕网| 丝袜美腿玉足3d专区一区| 色多多在线观看| 亚洲国产精品999| 国产精品a成v人在线播放| 国产精品一级黄| 韩国黄色一级大片| 日韩三级精品| 欧美成人小视频| 99久久精品日本一区二区免费| 亚洲人成网站精品片在线观看| 午夜一区二区视频| 亚洲精品一区二区在线看| 国产精品综合不卡av| 国产淫片在线观看| 欧美大片在线观看一区二区| 麻豆一区产品精品蜜桃的特点| 国产传媒久久文化传媒| 久久艹国产精品| 加勒比视频一区| 日韩av电影免费观看高清| 韩国中文免费在线视频| 欧美三级视频在线| 三级影片在线观看| 国产精品一区二区三区网站| 国产在线观看欧美| 日韩极品在线| 国产精品成人免费电影| 日本a级在线| 精品国产一区二区三区久久久蜜月| 黄色一级片在线| 99v久久综合狠狠综合久久| 国产日产欧美视频| 99久久婷婷| 懂色av一区二区三区在线播放| 91老司机福利在线| 国产一区二区久久精品| 一区二区三区黄| 亚洲妇熟xx妇色黄| av女人的天堂| 国产精品一区2区| 怡红院av亚洲一区二区三区h| 国产日产精品一区二区三区四区的观看方式| 国产精品wwwwww| 在线中文字幕视频观看| 亚洲激情在线观看| 中文字幕无线码一区| 一区二区三区精品久久久| 亚洲成人av免费在线观看| 秋霞成人午夜伦在线观看| 青青视频免费在线观看| 色婷婷狠狠五月综合天色拍| 国产精品视频xxx| av电影在线免费| 中文字幕9999| 色欲av伊人久久大香线蕉影院| 欧美性做爰猛烈叫床潮| 国产亚洲精品av| 国产欧美精品一区二区三区四区| 国产亚洲精品91在线| 久草在线在线精品观看| 免费在线观看精品| 日韩中文有码在线视频| 91精品国产乱码久久久久| 亚洲一区二区精品久久av| 久久精品国产亚洲av久| 国产麻豆精品95视频| 黄色片久久久久| 91精品秘密在线观看| 热re99久久精品国产99热 | 国产福利视频一区二区| 呦呦在线视频| 国产一区二区三区丝袜| 东京干手机福利视频| 欧美精三区欧美精三区| 中文字幕超碰在线| 亚洲综合区在线| 久久av红桃一区二区禁漫| 久久亚洲欧美国产精品乐播 | 一区二区视频网站| 岛国精品视频在线播放| 欧美日韩精品在线观看视频 | 亚洲欧洲国产一区| 高潮毛片7777777毛片| 91精品国产一区二区三区香蕉 | 日韩精品一级二级 | 欧美日韩国产不卡在线看| 一区二区亚洲视频| 91沈先生作品| 国产激情久久| 国产福利视频一区二区| 国产精品av一区二区三区| 韩国三级电影久久久久久| 神马午夜伦理不卡 | 极品尤物av久久免费看| 亚欧在线免费观看| 日韩成人一区二区| 无码日韩人妻精品久久蜜桃| 久久久久久穴| 国产女女做受ⅹxx高潮| 久久精品一区二区国产| 无码人妻丰满熟妇区毛片18| 国产精品美女久久久| 亚洲 自拍 另类小说综合图区| 黄色另类av| 五十路熟女丰满大屁股| 一区二区视频欧美| 人人妻人人添人人爽欧美一区| 最新国产乱人伦偷精品免费网站| 成人免费性视频| 亚洲天堂黄色| av黄色在线网站| 久久一二三区| 韩国中文字幕av| 久久精品二区亚洲w码| 亚洲一级免费在线观看| 精品一区二区三区影院在线午夜| 精品亚洲视频在线| 国产精品影视在线| 手机免费看av片| 91免费视频网址| 韩国女同性做爰三级| 日本一区二区综合亚洲| 操她视频在线观看| 亚洲自拍欧美精品| 97免费在线观看视频| 色综合天天做天天爱| 91视频久久久| 欧美精品一二三区| 国产成人久久精品77777综合| 7777精品伊人久久久大香线蕉完整版 | 欧美18—19性高清hd4k| 国产精品久久久久久久蜜臀 | 欧类av怡春院| 久久精品人人做人人爽97| 日本美女黄色一级片| 亚洲精品高清视频在线观看| 国产午夜福利一区二区| 一本大道久久a久久综合| 97人妻精品一区二区三区软件| 日韩一区二区三区三四区视频在线观看| 亚洲精品国产精品乱码不卡| 亚洲精品av在线播放| avtt在线播放| 欧美肥婆姓交大片| 韩漫成人漫画| 99精品在线直播| 亚洲三级网页| 日韩视频一二三| 日日夜夜免费精品| 黄页网站在线看| 久久久国产午夜精品 | 欧美黄在线观看| 丁香啪啪综合成人亚洲| 国模少妇一区二区三区| 国产艳俗歌舞表演hd| 亚洲色图一区二区| 日本熟女毛茸茸| 欧美大片在线观看| 91社区在线观看播放| 亚州国产精品久久久| 欧美黄页在线免费观看| 国产综合动作在线观看| 久久精品亚洲欧美日韩精品中文字幕| 每日在线观看av| 国内成+人亚洲+欧美+综合在线| 熟妇人妻久久中文字幕| 亚洲婷婷在线视频| 中文字幕xxxx| 亚洲精品乱码久久久久久金桔影视| 欧美边添边摸边做边爱免费| 欧美亚州一区二区三区| 精品午夜视频| 亚洲综合第一| 玖玖在线精品| 欧类av怡春院| 亚洲高清不卡在线| 99久久久国产精品无码网爆| 中文字幕国产日韩| 欧美第一视频| 久久精品日产第一区二区三区| 午夜精品久久| 日日干日日操日日射| 国产丝袜欧美中文另类| 中文字幕第四页| 亚洲成人三级在线| 欧美日韩色网| 成人免费激情视频| 欧美1级片网站| 波多野结衣天堂| 国产日韩欧美精品综合| 800av免费在线观看| 亚洲福利在线视频| 日本一本在线免费福利| 91精品在线观看视频| 国产欧美一区二区精品久久久| 国产乱子伦农村叉叉叉| 成人免费福利片| 日本a在线观看| 欧美精品一区二区三区一线天视频| 91精品久久| 91免费版黄色| 欧美日韩日本国产亚洲在线| 波多野结衣中文字幕在线播放| 国产精品久久久久久久久免费樱桃| 中文字幕二区三区| 少妇激情综合网| 日韩午夜视频在线| a级网站在线观看| 国产伦精一区二区三区| 日韩高清dvd碟片| 精品少妇一区二区三区视频免付费| 操你啦视频在线| 国产伦精品一区二区三区免 | 久久久久久综合网天天| 韩国女主播一区二区三区| 欧美大片在线播放| 久久久亚洲精品一区二区三区| 亚洲国产成人无码av在线| 亚洲欧美一区二区三区四区 | 狠狠色综合欧美激情| 99精品国产福利在线观看免费| 中文字幕乱码在线| 日韩欧美一区二区三区久久| 国产区av在线| 国产日韩在线播放| 欧美日韩视频一区二区三区| 美女网站视频在线观看| 天天影视网天天综合色在线播放 | 91久久精品无嫩草影院| 日韩视频免费播放| 久久女同精品一区二区| 中文字幕免费在线看| 欧美精品手机在线| 蜜桃一区av| 天天操天天爽天天射| 日韩码欧中文字| 天堂在线视频免费| 国产精品揄拍500视频| 欧美日韩国产欧| av在线网站观看| 91精品国产全国免费观看| 嗯啊主人调教在线播放视频| 日韩高清三级| 国产a级毛片一区| 老熟妇一区二区三区| 久久这里有精品| 香蕉视频一区| 亚洲av毛片在线观看| 狠狠躁夜夜躁人人爽天天天天97| 91女主播在线观看| 国产一区二区不卡视频| 日本不卡123| 日本一区二区不卡在线| 色妞在线综合亚洲欧美| 欧美日韩破处| 亚洲综合在线一区二区| 日韩欧美一区二区三区久久| 日韩成人伦理|