3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

50个最有用的Matplotlib数据分析与可视化图

發(fā)布時(shí)間:2023/12/10 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 50个最有用的Matplotlib数据分析与可视化图 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文介紹了數(shù)據(jù)分析與可視化中最有用的50個(gè)數(shù)據(jù)分析圖,共分為7大類:Correlation、Deviation、RankIng、Distribution、Composition、Change、Groups

原文鏈接:https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/

目錄

設(shè)置

Correlation

1.Scatter plot(散點(diǎn)圖)

2.Bubble plot with Encircling(包圍的氣泡圖)

3. Scatter plot with linear regression line of best fit(散點(diǎn)圖與最佳線性擬合回歸線)

4.Jittering with stripplot(帶條紋的抖動(dòng))

5. Counts Plot(計(jì)數(shù)圖)

6. Marginal Histogram(邊緣直方圖)

7. Marginal Boxplot(邊緣箱線圖)

8. Correllogram(相關(guān)圖)

9. Pairwise Plot(成對圖)

Deviation

10. Diverging Bars(發(fā)散條形圖)

11. Diverging Texts(發(fā)散文本)

12. Diverging Dot Plot(散點(diǎn)圖)

13. Diverging Lollipop Chart with Markers(帶標(biāo)記的發(fā)散型棒棒糖圖)

14. Area Chart(面積圖)

Ranking

15. Ordered Bar Chart(有序條形圖)

16. Lollipop Chart(棒棒糖圖)

17. Dot Plot(點(diǎn)圖)

18. Slope Chart(坡度圖)

19. Dumbbell Plot(啞鈴圖)

Distribution

20. Histogram for Continuous Variable(連續(xù)變量的直方圖)

21. Histogram for Categorical Variable(類型變量的直方圖)

22. Density Plot(密度圖)

23. Density Curves with Histogram(直方密度圖)

24. Joy Plot

25. Distributed Dot Plot(分布式點(diǎn)圖)

26. Box Plot(箱形圖)

27. Dot + Box Plot(點(diǎn)+箱型圖)

28. Violin Plot(小提琴圖)

29. Population Pyramid(人口金字塔)

30. Categorical Plots(分類圖)

Composition

31. Waffle Chart(華夫餅表)

32. Pie Chart(餅狀圖)

33. Treemap(樹狀圖)

34. Bar Chart(條形圖)

Change

35. Time Series Plot(時(shí)間序列圖)

36. Time Series with Peaks and Troughs Annotated(帶波峰波谷標(biāo)記的時(shí)序圖)

37. Autocorrelation (ACF) and Partial Autocorrelation (PACF) Plot(自相關(guān)和部分自相關(guān)圖)

38. Cross Correlation plot(交叉相關(guān)圖)

39. Time Series Decomposition Plot(時(shí)間序列分解圖)

40. Multiple Time Series(多時(shí)間序列)

41. Plotting with different scales using secondary Y axis(使用輔助Y軸來繪制不同范圍的圖形)

42. Time Series with Error Bands(帶有誤差帶的時(shí)間序列)

43. Stacked Area Chart(堆積面積圖)

44. Area Chart UnStacked(未堆積的面積圖)

45. Calendar Heat Map(日歷熱力圖)

46. Seasonal Plot(季度圖)

Groups

47. Dendrogram(樹狀圖)

48. Cluster Plot(簇狀圖)

49. Andrews Curve(安德魯斯曲線)

50. Parallel Coordinates(平行坐標(biāo))



設(shè)置

在運(yùn)行具體畫圖代碼前,先運(yùn)行以下代碼,導(dǎo)入畫圖所需的庫,以及進(jìn)行一些必要的參數(shù)設(shè)置。

import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns import warnings; warnings.filterwarnings(action='once')large = 22; med = 16; small = 12 params = {'axes.titlesize': large,'legend.fontsize': med,'figure.figsize': (16, 10),'axes.labelsize': med,'axes.titlesize': med,'xtick.labelsize': med,'ytick.labelsize': med,'figure.titlesize': large} plt.rcParams.update(params) plt.style.use('seaborn-whitegrid') sns.set_style("white") %matplotlib inline# Version print(mpl.__version__) #> 3.0.0 print(sns.__version__) #> 0.9.0

Correlation

用于可視化兩個(gè)或多個(gè)變量之間的相互關(guān)系,當(dāng)一個(gè)變量發(fā)生變化時(shí),另一個(gè)變量與之如何變化。

1.Scatter plot(散點(diǎn)圖)

散點(diǎn)圖是研究兩個(gè)變量之間最基本和經(jīng)典的關(guān)系圖。如果數(shù)據(jù)中有多個(gè)不同的組,則可能需要以不同的顏色顯示每個(gè)組。在matplotlib中,可以使用plt.scatterplot()。

# Import dataset midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv")# Prepare Data # Create as many colors as there are unique midwest['category'] categories = np.unique(midwest['category']) colors = [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]# Draw Plot for Each Category plt.figure(figsize=(16, 10), dpi= 80, facecolor='w', edgecolor='k')for i, category in enumerate(categories):plt.scatter('area', 'poptotal', data=midwest.loc[midwest.category==category, :], s=20, c=colors[i], label=str(category))# Decorations plt.gca().set(xlim=(0.0, 0.1), ylim=(0, 90000),xlabel='Area', ylabel='Population')plt.xticks(fontsize=12); plt.yticks(fontsize=12) plt.title("Scatterplot of Midwest Area vs Population", fontsize=22) plt.legend(fontsize=12) plt.show()


2.Bubble plot with Encircling(包圍的氣泡圖)

有時(shí)你想在一個(gè)邊界內(nèi)顯示一組點(diǎn)來強(qiáng)調(diào)它們的重要性。

from matplotlib import patches from scipy.spatial import ConvexHull import warnings; warnings.simplefilter('ignore') sns.set_style("white")# Step 1: Prepare Data midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv")# As many colors as there are unique midwest['category'] categories = np.unique(midwest['category']) colors = [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]# Step 2: Draw Scatterplot with unique color for each category fig = plt.figure(figsize=(16, 10), dpi= 80, facecolor='w', edgecolor='k') for i, category in enumerate(categories):plt.scatter('area', 'poptotal', data=midwest.loc[midwest.category==category, :], \ s='dot_size', c=colors[i], label=str(category), edgecolors='black', linewidths=.5)# Step 3: Encircling # https://stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot def encircle(x,y, ax=None, **kw):if not ax: ax=plt.gca()p = np.c_[x,y]hull = ConvexHull(p)poly = plt.Polygon(p[hull.vertices,:], **kw)ax.add_patch(poly)# Select data to be encircled midwest_encircle_data = midwest.loc[midwest.state=='IN', :] # Draw polygon surrounding vertices encircle(midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1) encircle(midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5)# Step 4: Decorations plt.gca().set(xlim=(0.0, 0.1), ylim=(0, 90000),xlabel='Area', ylabel='Population')plt.xticks(fontsize=12); plt.yticks(fontsize=12) plt.title("Bubble Plot with Encircling", fontsize=22) plt.legend(fontsize=12) plt.show()


3. Scatter plot with linear regression line of best fit(散點(diǎn)圖與最佳線性擬合回歸線)

如果想了解兩個(gè)變量之間是如何變化的,那么最好的方法就是繪制一條擬合線。下圖顯示了數(shù)據(jù)中不同組之間的最佳擬合線的差異。

# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv") df_select = df.loc[df.cyl.isin([4,8]), :]# Plot sns.set_style("white") gridobj = sns.lmplot(x="displ", y="hwy", hue="cyl", data=df_select, height=7, aspect=1.6, robust=True, palette='tab10', scatter_kws=dict(s=60, linewidths=.7, edgecolors='black'))# Decorations gridobj.set(xlim=(0.5, 7.5), ylim=(0, 50)) plt.title("Scatterplot with line of best fit grouped by number of cylinders", fontsize=20) plt.show()


4.Jittering with stripplot(帶條紋的抖動(dòng))

通常,多個(gè)數(shù)據(jù)點(diǎn)具有完全相同的X和Y值。因此繪制這些點(diǎn)時(shí)會(huì)相互覆蓋,為避免這種情況,可以對其稍微抖動(dòng),以便可以直觀地看到它們。使用seaborn.stripplot()函數(shù)很方便。

# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")# Draw Stripplot fig, ax = plt.subplots(figsize=(16,10), dpi= 80) sns.stripplot(df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5)# Decorations plt.title('Use jittered plots to avoid overlapping of points', fontsize=22) plt.show()


5. Counts Plot(計(jì)數(shù)圖)

另一個(gè)避免數(shù)據(jù)點(diǎn)相互重疊的方法是改變數(shù)據(jù)點(diǎn)的大小,這取決于該圖中有多少個(gè)點(diǎn)。

# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv") df_counts = df.groupby(['hwy', 'cty']).size().reset_index(name='counts')# Draw Stripplot fig, ax = plt.subplots(figsize=(16,10), dpi= 80) sns.stripplot(df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax)# Decorations plt.title('Counts Plot - Size of circle is bigger as more points overlap', fontsize=22) plt.show()


6. Marginal Histogram(邊緣直方圖)

邊緣直方圖是一個(gè)有著沿X和Y軸變量的直方圖。這用于可視化X和Y之間的關(guān)系,同時(shí)也顯示出X和Y各自的分布情況。

# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")# Create Fig and gridspec fig = plt.figure(figsize=(16, 10), dpi= 80) grid = plt.GridSpec(4, 4, hspace=0.5, wspace=0.2)# Define the axes ax_main = fig.add_subplot(grid[:-1, :-1]) ax_right = fig.add_subplot(grid[:-1, -1], xticklabels=[], yticklabels=[]) ax_bottom = fig.add_subplot(grid[-1, 0:-1], xticklabels=[], yticklabels=[])# Scatterplot on main ax ax_main.scatter('displ', 'hwy', s=df.cty*4, c=df.manufacturer.astype('category').cat.codes, alpha=.9, data=df, \ cmap="tab10", edgecolors='gray', linewidths=.5)# histogram on the right ax_bottom.hist(df.displ, 40, histtype='stepfilled', orientation='vertical', color='deeppink') ax_bottom.invert_yaxis()# histogram in the bottom ax_right.hist(df.hwy, 40, histtype='stepfilled', orientation='horizontal', color='deeppink')# Decorations ax_main.set(title='Scatterplot with Histograms \n displ vs hwy', xlabel='displ', ylabel='hwy') ax_main.title.set_fontsize(20) for item in ([ax_main.xaxis.label, ax_main.yaxis.label] + ax_main.get_xticklabels() + ax_main.get_yticklabels()):item.set_fontsize(14)xlabels = ax_main.get_xticks().tolist() ax_main.set_xticklabels(xlabels) plt.show()


7. Marginal Boxplot(邊緣箱線圖)

邊緣箱圖與邊緣直方圖具有相似的用途。然而,箱線圖有助于精確定位X和Y的中位數(shù),25和75百分位數(shù)。

# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")# Create Fig and gridspec fig = plt.figure(figsize=(16, 10), dpi= 80) grid = plt.GridSpec(4, 4, hspace=0.5, wspace=0.2)# Define the axes ax_main = fig.add_subplot(grid[:-1, :-1]) ax_right = fig.add_subplot(grid[:-1, -1], xticklabels=[], yticklabels=[]) ax_bottom = fig.add_subplot(grid[-1, 0:-1], xticklabels=[], yticklabels=[])# Scatterplot on main ax ax_main.scatter('displ', 'hwy', s=df.cty*5, c=df.manufacturer.astype('category').cat.codes, alpha=.9, data=df, cmap="Set1", edgecolors='black', linewidths=.5)# Add a graph in each part sns.boxplot(df.hwy, ax=ax_right, orient="v") sns.boxplot(df.displ, ax=ax_bottom, orient="h")# Decorations ------------------ # Remove x axis name for the boxplot ax_bottom.set(xlabel='') ax_right.set(ylabel='')# Main Title, Xlabel and YLabel ax_main.set(title='Scatterplot with Histograms \n displ vs hwy', xlabel='displ', ylabel='hwy')# Set font size of different components ax_main.title.set_fontsize(20) for item in ([ax_main.xaxis.label, ax_main.yaxis.label] + ax_main.get_xticklabels() + ax_main.get_yticklabels()):item.set_fontsize(14)plt.show()


8. Correllogram(相關(guān)圖)

Correlogram用于直觀地查看給定數(shù)據(jù)幀(或2D數(shù)組)中所有可能的數(shù)值變量對之間的相關(guān)度量。

# Import Dataset df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")# Plot plt.figure(figsize=(12,10), dpi= 80) sns.heatmap(df.corr(), xticklabels=df.corr().columns, yticklabels=df.corr().columns,cmap='RdYlGn', center=0, annot=True)# Decorations plt.title('Correlogram of mtcars', fontsize=22) plt.xticks(fontsize=12) plt.yticks(fontsize=12) plt.show()


9. Pairwise Plot(成對圖)

成對圖用以理解所有可能的數(shù)字變量對之間的關(guān)系,它是雙變量分析的必備工具。

# Load Dataset df = sns.load_dataset('iris')# Plot plt.figure(figsize=(10,8), dpi= 80) sns.pairplot(df, kind="scatter", hue="species", plot_kws=dict(s=80, edgecolor="white", linewidth=2.5)) plt.show()

# Load Dataset df = sns.load_dataset('iris')# Plot plt.figure(figsize=(10,8), dpi= 80) sns.pairplot(df, kind="reg", hue="species") plt.show()


Deviation

10. Diverging Bars(發(fā)散條形圖)

如果想根據(jù)單個(gè)指標(biāo)查看條目的變化情況,并可視化此差異的順序和數(shù)量,那么發(fā)散條形圖是一個(gè)很好的工具。

# Prepare Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv") x = df.loc[:, ['mpg']] df['mpg_z'] = (x - x.mean())/x.std() df['colors'] = ['red' if x < 0 else 'green' for x in df['mpg_z']] df.sort_values('mpg_z', inplace=True) df.reset_index(inplace=True)# Draw plot plt.figure(figsize=(14,10), dpi= 80) plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z, color=df.colors, alpha=0.4, linewidth=5)# Decorations plt.gca().set(ylabel='$Model$', xlabel='$Mileage$') plt.yticks(df.index, df.cars, fontsize=12) plt.title('Diverging Bars of Car Mileage', fontdict={'size':20}) plt.grid(linestyle='--', alpha=0.5) plt.show()


11. Diverging Texts(發(fā)散文本)

發(fā)散文本類似于發(fā)散條形圖,如果想以一種漂亮和可呈現(xiàn)的方式顯示圖表中每個(gè)條目的數(shù)值。

# Prepare Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv") x = df.loc[:, ['mpg']] df['mpg_z'] = (x - x.mean())/x.std() df['colors'] = ['red' if x < 0 else 'green' for x in df['mpg_z']] df.sort_values('mpg_z', inplace=True) df.reset_index(inplace=True)# Draw plot plt.figure(figsize=(14,14), dpi= 80) plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z) for x, y, tex in zip(df.mpg_z, df.index, df.mpg_z):t = plt.text(x, y, round(tex, 2), horizontalalignment='right' if x < 0 else 'left', verticalalignment='center', fontdict={'color':'red' if x < 0 else 'green', 'size':14})# Decorations plt.yticks(df.index, df.cars, fontsize=12) plt.title('Diverging Text Bars of Car Mileage', fontdict={'size':20}) plt.grid(linestyle='--', alpha=0.5) plt.xlim(-2.5, 2.5) plt.show()


12. Diverging Dot Plot(散點(diǎn)圖)

# Prepare Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv") x = df.loc[:, ['mpg']] df['mpg_z'] = (x - x.mean())/x.std() df['colors'] = ['red' if x < 0 else 'darkgreen' for x in df['mpg_z']] df.sort_values('mpg_z', inplace=True) df.reset_index(inplace=True)# Draw plot plt.figure(figsize=(14,16), dpi= 80) plt.scatter(df.mpg_z, df.index, s=450, alpha=.6, color=df.colors) for x, y, tex in zip(df.mpg_z, df.index, df.mpg_z):t = plt.text(x, y, round(tex, 1), horizontalalignment='center', verticalalignment='center', fontdict={'color':'white'})# Decorations # Lighten borders plt.gca().spines["top"].set_alpha(.3) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(.3) plt.gca().spines["left"].set_alpha(.3)plt.yticks(df.index, df.cars) plt.title('Diverging Dotplot of Car Mileage', fontdict={'size':20}) plt.xlabel('$Mileage$') plt.grid(linestyle='--', alpha=0.5) plt.xlim(-2.5, 2.5) plt.show()


13. Diverging Lollipop Chart with Markers(帶標(biāo)記的發(fā)散型棒棒糖圖

帶標(biāo)記的棒棒糖可以幫助強(qiáng)調(diào)想要引起注意的任何重要數(shù)據(jù)點(diǎn)。

# Prepare Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv") x = df.loc[:, ['mpg']] df['mpg_z'] = (x - x.mean())/x.std() df['colors'] = 'black'# color fiat differently df.loc[df.cars == 'Fiat X1-9', 'colors'] = 'darkorange' df.sort_values('mpg_z', inplace=True) df.reset_index(inplace=True)# Draw plot import matplotlib.patches as patchesplt.figure(figsize=(14,16), dpi= 80) plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z, color=df.colors, alpha=0.4, linewidth=1) plt.scatter(df.mpg_z, df.index, color=df.colors, s=[600 if x == 'Fiat X1-9' else 300 for x in df.cars], alpha=0.6) plt.yticks(df.index, df.cars) plt.xticks(fontsize=12)# Annotate plt.annotate('Mercedes Models', xy=(0.0, 11.0), xytext=(1.0, 11), xycoords='data', fontsize=15, ha='center', va='center',bbox=dict(boxstyle='square', fc='firebrick'),arrowprops=dict(arrowstyle='-[, widthB=2.0, lengthB=1.5', lw=2.0, color='steelblue'), color='white')# Add Patches p1 = patches.Rectangle((-2.0, -1), width=.3, height=3, alpha=.2, facecolor='red') p2 = patches.Rectangle((1.5, 27), width=.8, height=5, alpha=.2, facecolor='green') plt.gca().add_patch(p1) plt.gca().add_patch(p2)# Decorate plt.title('Diverging Bars of Car Mileage', fontdict={'size':20}) plt.grid(linestyle='--', alpha=0.5) plt.show()


14. Area Chart(面積圖)

通過對坐標(biāo)軸和曲線之間的區(qū)域進(jìn)行著色,區(qū)域圖不僅強(qiáng)調(diào)波峰值和低波,而且還強(qiáng)調(diào)波峰和波谷的持續(xù)時(shí)間。波峰持續(xù)時(shí)間越長,面積越大。

import numpy as np import pandas as pd# Prepare Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/economics.csv", parse_dates=['date']).head(100) x = np.arange(df.shape[0]) y_returns = (df.psavert.diff().fillna(0)/df.psavert.shift(1)).fillna(0) * 100# Plot plt.figure(figsize=(16,10), dpi= 80) plt.fill_between(x[1:], y_returns[1:], 0, where=y_returns[1:] >= 0, facecolor='green', interpolate=True, alpha=0.7) plt.fill_between(x[1:], y_returns[1:], 0, where=y_returns[1:] <= 0, facecolor='red', interpolate=True, alpha=0.7)# Annotate plt.annotate('Peak \n1975', xy=(94.0, 21.0), xytext=(88.0, 28),bbox=dict(boxstyle='square', fc='firebrick'),arrowprops=dict(facecolor='steelblue', shrink=0.05), fontsize=15, color='white')# Decorations xtickvals = [str(m)[:3].upper()+"-"+str(y) for y,m in zip(df.date.dt.year, df.date.dt.month_name())] plt.gca().set_xticks(x[::6]) plt.gca().set_xticklabels(xtickvals[::6], rotation=90, fontdict={'horizontalalignment': 'center', 'verticalalignment': 'center_baseline'}) plt.ylim(-35,35) plt.xlim(1,100) plt.title("Month Economics Return %", fontsize=22) plt.ylabel('Monthly returns %') plt.grid(alpha=0.5) plt.show()


Ranking

15. Ordered Bar Chart(有序條形圖)

有序條形圖有效地傳達(dá)了條目的排名順序。但是,在圖表上方添加度量標(biāo)準(zhǔn)的值,用戶可以從圖表本身獲取精確信息。

# Prepare Data df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv") df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.mean()) df.sort_values('cty', inplace=True) df.reset_index(inplace=True)# Draw plot import matplotlib.patches as patchesfig, ax = plt.subplots(figsize=(16,10), facecolor='white', dpi= 80) ax.vlines(x=df.index, ymin=0, ymax=df.cty, color='firebrick', alpha=0.7, linewidth=20)# Annotate Text for i, cty in enumerate(df.cty):ax.text(i, cty+0.5, round(cty, 1), horizontalalignment='center')# Title, Label, Ticks and Ylim ax.set_title('Bar Chart for Highway Mileage', fontdict={'size':22}) ax.set(ylabel='Miles Per Gallon', ylim=(0, 30)) plt.xticks(df.index, df.manufacturer.str.upper(), rotation=60, horizontalalignment='right', fontsize=12)# Add patches to color the X axis labels p1 = patches.Rectangle((.57, -0.005), width=.33, height=.13, alpha=.1, facecolor='green', transform=fig.transFigure) p2 = patches.Rectangle((.124, -0.005), width=.446, height=.13, alpha=.1, facecolor='red', transform=fig.transFigure) fig.add_artist(p1) fig.add_artist(p2) plt.show()


16. Lollipop Chart(棒棒糖圖)

棒棒糖圖表以一種視覺上令人愉悅的方式提供與有序條形圖類似的目的。

# Prepare Data df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv") df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.mean()) df.sort_values('cty', inplace=True) df.reset_index(inplace=True)# Draw plot fig, ax = plt.subplots(figsize=(16,10), dpi= 80) ax.vlines(x=df.index, ymin=0, ymax=df.cty, color='firebrick', alpha=0.7, linewidth=2) ax.scatter(x=df.index, y=df.cty, s=75, color='firebrick', alpha=0.7)# Title, Label, Ticks and Ylim ax.set_title('Lollipop Chart for Highway Mileage', fontdict={'size':22}) ax.set_ylabel('Miles Per Gallon') ax.set_xticks(df.index) ax.set_xticklabels(df.manufacturer.str.upper(), rotation=60, fontdict={'horizontalalignment': 'right', 'size':12}) ax.set_ylim(0, 30)# Annotate for row in df.itertuples():ax.text(row.Index, row.cty+.5, s=round(row.cty, 2), horizontalalignment= 'center', verticalalignment='bottom', fontsize=14)plt.show()


17. Dot Plot(點(diǎn)圖)

點(diǎn)圖傳達(dá)了條目的排名順序。由于它沿水平軸對齊,因此可以更容易地看到點(diǎn)彼此之間的距離。

# Prepare Data df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv") df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.mean()) df.sort_values('cty', inplace=True) df.reset_index(inplace=True)# Draw plot fig, ax = plt.subplots(figsize=(16,10), dpi= 80) ax.hlines(y=df.index, xmin=11, xmax=26, color='gray', alpha=0.7, linewidth=1, linestyles='dashdot') ax.scatter(y=df.index, x=df.cty, s=75, color='firebrick', alpha=0.7)# Title, Label, Ticks and Ylim ax.set_title('Dot Plot for Highway Mileage', fontdict={'size':22}) ax.set_xlabel('Miles Per Gallon') ax.set_yticks(df.index) ax.set_yticklabels(df.manufacturer.str.title(), fontdict={'horizontalalignment': 'right'}) ax.set_xlim(10, 27) plt.show()


18. Slope Chart(坡度圖)

坡度圖最適合比較給定項(xiàng)目的“在此之前”和“在此之后”的位置。

import matplotlib.lines as mlines # Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/gdppercap.csv")left_label = [str(c) + ', '+ str(round(y)) for c, y in zip(df.continent, df['1952'])] right_label = [str(c) + ', '+ str(round(y)) for c, y in zip(df.continent, df['1957'])] klass = ['red' if (y1-y2) < 0 else 'green' for y1, y2 in zip(df['1952'], df['1957'])]# draw line # https://stackoverflow.com/questions/36470343/how-to-draw-a-line-with-matplotlib/36479941 def newline(p1, p2, color='black'):ax = plt.gca()l = mlines.Line2D([p1[0],p2[0]], [p1[1],p2[1]], color='red' if p1[1]-p2[1] > 0 else 'green', marker='o', markersize=6)ax.add_line(l)return lfig, ax = plt.subplots(1,1,figsize=(14,14), dpi= 80)# Vertical Lines ax.vlines(x=1, ymin=500, ymax=13000, color='black', alpha=0.7, linewidth=1, linestyles='dotted') ax.vlines(x=3, ymin=500, ymax=13000, color='black', alpha=0.7, linewidth=1, linestyles='dotted')# Points ax.scatter(y=df['1952'], x=np.repeat(1, df.shape[0]), s=10, color='black', alpha=0.7) ax.scatter(y=df['1957'], x=np.repeat(3, df.shape[0]), s=10, color='black', alpha=0.7)# Line Segmentsand Annotation for p1, p2, c in zip(df['1952'], df['1957'], df['continent']):newline([1,p1], [3,p2])ax.text(1-0.05, p1, c + ', ' + str(round(p1)), horizontalalignment='right', verticalalignment='center', fontdict={'size':14})ax.text(3+0.05, p2, c + ', ' + str(round(p2)), horizontalalignment='left', verticalalignment='center', fontdict={'size':14})# 'Before' and 'After' Annotations ax.text(1-0.05, 13000, 'BEFORE', horizontalalignment='right', verticalalignment='center', fontdict={'size':18, 'weight':700}) ax.text(3+0.05, 13000, 'AFTER', horizontalalignment='left', verticalalignment='center', fontdict={'size':18, 'weight':700})# Decoration ax.set_title("Slopechart: Comparing GDP Per Capita between 1952 vs 1957", fontdict={'size':22}) ax.set(xlim=(0,4), ylim=(0,14000), ylabel='Mean GDP Per Capita') ax.set_xticks([1,3]) ax.set_xticklabels(["1952", "1957"]) plt.yticks(np.arange(500, 13000, 2000), fontsize=12)# Lighten borders plt.gca().spines["top"].set_alpha(.0) plt.gca().spines["bottom"].set_alpha(.0) plt.gca().spines["right"].set_alpha(.0) plt.gca().spines["left"].set_alpha(.0) plt.show()


19. Dumbbell Plot(啞鈴圖

啞鈴圖傳達(dá)各種項(xiàng)目的“前”和“后”位置以及項(xiàng)目的排序。

import matplotlib.lines as mlines# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/health.csv") df.sort_values('pct_2014', inplace=True) df.reset_index(inplace=True)# Func to draw line segment def newline(p1, p2, color='black'):ax = plt.gca()l = mlines.Line2D([p1[0],p2[0]], [p1[1],p2[1]], color='skyblue')ax.add_line(l)return l# Figure and Axes fig, ax = plt.subplots(1,1,figsize=(14,14), facecolor='#f7f7f7', dpi= 80)# Vertical Lines ax.vlines(x=.05, ymin=0, ymax=26, color='black', alpha=1, linewidth=1, linestyles='dotted') ax.vlines(x=.10, ymin=0, ymax=26, color='black', alpha=1, linewidth=1, linestyles='dotted') ax.vlines(x=.15, ymin=0, ymax=26, color='black', alpha=1, linewidth=1, linestyles='dotted') ax.vlines(x=.20, ymin=0, ymax=26, color='black', alpha=1, linewidth=1, linestyles='dotted')# Points ax.scatter(y=df['index'], x=df['pct_2013'], s=50, color='#0e668b', alpha=0.7) ax.scatter(y=df['index'], x=df['pct_2014'], s=50, color='#a3c4dc', alpha=0.7)# Line Segments for i, p1, p2 in zip(df['index'], df['pct_2013'], df['pct_2014']):newline([p1, i], [p2, i])# Decoration ax.set_facecolor('#f7f7f7') ax.set_title("Dumbell Chart: Pct Change - 2013 vs 2014", fontdict={'size':22}) ax.set(xlim=(0,.25), ylim=(-1, 27), ylabel='Mean GDP Per Capita') ax.set_xticks([.05, .1, .15, .20]) ax.set_xticklabels(['5%', '15%', '20%', '25%']) ax.set_xticklabels(['5%', '15%', '20%', '25%']) plt.show()


Distribution

20. Histogram for Continuous Variable(連續(xù)變量的直方圖

直方圖顯示給定變量的頻率分布。下面表示基于分類變量對頻率條進(jìn)行分組,從而更好地了解連續(xù)變量和串聯(lián)變量。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare data x_var = 'displ' groupby_var = 'class' df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var) vals = [df[x_var].values.tolist() for i, df in df_agg]# Draw plt.figure(figsize=(16,9), dpi= 80) colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))] n, bins, patches = plt.hist(vals, 30, stacked=True, density=False, color=colors[:len(vals)])# Decoration plt.legend({group:col for group, col in zip(np.unique(df[groupby_var]).tolist(), colors[:len(vals)])}) plt.title(f"Stacked Histogram of ${x_var}$ colored by ${groupby_var}$", fontsize=22) plt.xlabel(x_var) plt.ylabel("Frequency") plt.ylim(0, 25) plt.xticks(ticks=bins[::3], labels=[round(b,1) for b in bins[::3]]) plt.show()


21. Histogram for Categorical Variable(類型變量的直方圖

分類變量的直方圖顯示該變量的頻率分布。通過對條形圖進(jìn)行著色,您可以將分布與表示顏色的另一個(gè)分類變量相關(guān)聯(lián)。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare data x_var = 'manufacturer' groupby_var = 'class' df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var) vals = [df[x_var].values.tolist() for i, df in df_agg]# Draw plt.figure(figsize=(16,9), dpi= 80) colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))] n, bins, patches = plt.hist(vals, df[x_var].unique().__len__(), stacked=True, density=False, color=colors[:len(vals)])# Decoration plt.legend({group:col for group, col in zip(np.unique(df[groupby_var]).tolist(), colors[:len(vals)])}) plt.title(f"Stacked Histogram of ${x_var}$ colored by ${groupby_var}$", fontsize=22) plt.xlabel(x_var) plt.ylabel("Frequency") plt.ylim(0, 40) plt.xticks(ticks=bins, labels=np.unique(df[x_var]).tolist(), rotation=90, horizontalalignment='left') plt.show()


22. Density Plot(密度圖)

密度圖是一種常用工具,可視化連續(xù)變量的分布。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Draw Plot plt.figure(figsize=(16,10), dpi= 80) sns.kdeplot(df.loc[df['cyl'] == 4, "cty"], shade=True, color="g", label="Cyl=4", alpha=.7) sns.kdeplot(df.loc[df['cyl'] == 5, "cty"], shade=True, color="deeppink", label="Cyl=5", alpha=.7) sns.kdeplot(df.loc[df['cyl'] == 6, "cty"], shade=True, color="dodgerblue", label="Cyl=6", alpha=.7) sns.kdeplot(df.loc[df['cyl'] == 8, "cty"], shade=True, color="orange", label="Cyl=8", alpha=.7)# Decoration plt.title('Density Plot of City Mileage by n_Cylinders', fontsize=22) plt.legend() plt.show()


23. Density Curves with Histogram(直方密度圖

帶有直方圖的密度曲線將兩個(gè)圖表傳達(dá)的集體信息匯集在一起,這樣您就可以將它們放在一個(gè)圖形而不是兩個(gè)圖形中。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Draw Plot plt.figure(figsize=(13,10), dpi= 80) sns.distplot(df.loc[df['class'] == 'compact', "cty"], color="dodgerblue", label="Compact", hist_kws={'alpha':.7}, kde_kws={'linewidth':3}) sns.distplot(df.loc[df['class'] == 'suv', "cty"], color="orange", label="SUV", hist_kws={'alpha':.7}, kde_kws={'linewidth':3}) sns.distplot(df.loc[df['class'] == 'minivan', "cty"], color="g", label="minivan", hist_kws={'alpha':.7}, kde_kws={'linewidth':3})plt.ylim(0, 0.35)# Decoration plt.title('Density Plot of City Mileage by Vehicle Type', fontsize=22) plt.legend() plt.show()


24. Joy Plot

Joy Plot允許不同組的密度曲線重疊,這是一種可視化相對于彼此的大量組的分布的好方法。它看起來很悅目,并清楚地傳達(dá)了正確的信息。它可以使用joypy包來輕松構(gòu)建。

# !pip install joypy # Import Data mpg = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Draw Plot plt.figure(figsize=(16,10), dpi= 80) fig, axes = joypy.joyplot(mpg, column=['hwy', 'cty'], by="class", ylim='own', figsize=(14,10))# Decoration plt.title('Joy Plot of City and Highway Mileage by Class', fontsize=22) plt.show()


25. Distributed Dot Plot(分布式點(diǎn)圖)

分布點(diǎn)圖顯示按組分割的點(diǎn)的單變量分布。

import matplotlib.patches as mpatches# Prepare Data df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv") cyl_colors = {4:'tab:red', 5:'tab:green', 6:'tab:blue', 8:'tab:orange'} df_raw['cyl_color'] = df_raw.cyl.map(cyl_colors)# Mean and Median city mileage by make df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.mean()) df.sort_values('cty', ascending=False, inplace=True) df.reset_index(inplace=True) df_median = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x: x.median())# Draw horizontal lines fig, ax = plt.subplots(figsize=(16,10), dpi= 80) ax.hlines(y=df.index, xmin=0, xmax=40, color='gray', alpha=0.5, linewidth=.5, linestyles='dashdot')# Draw the Dots for i, make in enumerate(df.manufacturer):df_make = df_raw.loc[df_raw.manufacturer==make, :]ax.scatter(y=np.repeat(i, df_make.shape[0]), x='cty', data=df_make, s=75, edgecolors='gray', c='w', alpha=0.5)ax.scatter(y=i, x='cty', data=df_median.loc[df_median.index==make, :], s=75, c='firebrick')# Annotate ax.text(33, 13, "$red \; dots \; are \; the \: median$", fontdict={'size':12}, color='firebrick')# Decorations red_patch = plt.plot([],[], marker="o", ms=10, ls="", mec=None, color='firebrick', label="Median") plt.legend(handles=red_patch) ax.set_title('Distribution of City Mileage by Make', fontdict={'size':22}) ax.set_xlabel('Miles Per Gallon (City)', alpha=0.7) ax.set_yticks(df.index) ax.set_yticklabels(df.manufacturer.str.title(), fontdict={'horizontalalignment': 'right'}, alpha=0.7) ax.set_xlim(1, 40) plt.xticks(alpha=0.7) plt.gca().spines["top"].set_visible(False) plt.gca().spines["bottom"].set_visible(False) plt.gca().spines["right"].set_visible(False) plt.gca().spines["left"].set_visible(False) plt.grid(axis='both', alpha=.4, linewidth=.1) plt.show()


26. Box Plot(箱形圖)

箱形圖是一種可視化分布的好方法,記住中位數(shù),第25個(gè)第75個(gè)四分位數(shù)和異常值。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Draw Plot plt.figure(figsize=(13,10), dpi= 80) sns.boxplot(x='class', y='hwy', data=df, notch=False)# Add N Obs inside boxplot (optional) def add_n_obs(df,group_col,y):medians_dict = {grp[0]:grp[1][y].median() for grp in df.groupby(group_col)}xticklabels = [x.get_text() for x in plt.gca().get_xticklabels()]n_obs = df.groupby(group_col)[y].size().valuesfor (x, xticklabel), n_ob in zip(enumerate(xticklabels), n_obs):plt.text(x, medians_dict[xticklabel]*1.01, "#obs : "+str(n_ob), horizontalalignment='center', fontdict={'size':14}, color='white')add_n_obs(df,group_col='class',y='hwy') # Decoration plt.title('Box Plot of Highway Mileage by Vehicle Class', fontsize=22) plt.ylim(10, 40) plt.show()


27. Dot + Box Plot(點(diǎn)+箱型圖)

Dot + Box plot傳送類似于分組的boxplot信息。此外,這些點(diǎn)給出了每組中有多少數(shù)據(jù)點(diǎn)。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Draw Plot plt.figure(figsize=(13,10), dpi= 80) sns.boxplot(x='class', y='hwy', data=df, hue='cyl') sns.stripplot(x='class', y='hwy', data=df, color='black', size=3, jitter=1)for i in range(len(df['class'].unique())-1):plt.vlines(i+.5, 10, 45, linestyles='solid', colors='gray', alpha=0.2)# Decoration plt.title('Box Plot of Highway Mileage by Vehicle Class', fontsize=22) plt.legend(title='Cylinders') plt.show()


28. Violin Plot(小提琴圖)

小提琴圖是箱形圖的視覺上令人愉悅的替代品。小提琴的形狀或面積取決于它所持有的點(diǎn)數(shù)。然而,小提琴圖可能更難以理解,并且在專業(yè)設(shè)置中不常用。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Draw Plot plt.figure(figsize=(13,10), dpi= 80) sns.violinplot(x='class', y='hwy', data=df, scale='width', inner='quartile')# Decoration plt.title('Violin Plot of Highway Mileage by Vehicle Class', fontsize=22) plt.show()


29. Population Pyramid(人口金字塔)

人口金字塔可用于顯示由volumne排序的組的分布。

# Read data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/email_campaign_funnel.csv")# Draw Plot plt.figure(figsize=(13,10), dpi= 80) group_col = 'Gender' order_of_bars = df.Stage.unique()[::-1] colors = [plt.cm.Spectral(i/float(len(df[group_col].unique())-1)) for i in range(len(df[group_col].unique()))]for c, group in zip(colors, df[group_col].unique()):sns.barplot(x='Users', y='Stage', data=df.loc[df[group_col]==group, :], order=order_of_bars, color=c, label=group)# Decorations plt.xlabel("$Users$") plt.ylabel("Stage of Purchase") plt.yticks(fontsize=12) plt.title("Population Pyramid of the Marketing Funnel", fontsize=22) plt.legend() plt.show()


30. Categorical Plots(分類圖)

由Seaborn庫提供的分類圖可用于可視化彼此相關(guān)的2個(gè)或更多分類變量的計(jì)數(shù)分布。

# Load Dataset titanic = sns.load_dataset("titanic")# Plot g = sns.catplot("alive", col="deck", col_wrap=4,data=titanic[titanic.deck.notnull()],kind="count", height=3.5, aspect=.8, palette='tab20')fig.suptitle('sf') plt.show()

# Load Dataset titanic = sns.load_dataset("titanic")# Plot sns.catplot(x="age", y="embark_town",hue="sex", col="class",data=titanic[titanic.embark_town.notnull()],orient="h", height=5, aspect=1, palette="tab10",kind="violin", dodge=True, cut=0, bw=.2)


Composition

31. Waffle Chart(華夫餅表)

Waffle表可使用pywaffle包來創(chuàng)建。

#! pip install pywaffle # Reference: https://stackoverflow.com/questions/41400136/how-to-do-waffle-charts-in-python-square-piechart from pywaffle import Waffle# Import df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare Data df = df_raw.groupby('class').size().reset_index(name='counts') n_categories = df.shape[0] colors = [plt.cm.inferno_r(i/float(n_categories)) for i in range(n_categories)]# Draw Plot and Decorate fig = plt.figure(FigureClass=Waffle,plots={'111': {'values': df['counts'],'labels': ["{0} ({1})".format(n[0], n[1]) for n in df[['class', 'counts']].itertuples()],'legend': {'loc': 'upper left', 'bbox_to_anchor': (1.05, 1), 'fontsize': 12},'title': {'label': '# Vehicles by Class', 'loc': 'center', 'fontsize':18}},},rows=7,colors=colors,figsize=(16, 9) )

#! pip install pywaffle from pywaffle import Waffle# Import # df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare Data # By Class Data df_class = df_raw.groupby('class').size().reset_index(name='counts_class') n_categories = df_class.shape[0] colors_class = [plt.cm.Set3(i/float(n_categories)) for i in range(n_categories)]# By Cylinders Data df_cyl = df_raw.groupby('cyl').size().reset_index(name='counts_cyl') n_categories = df_cyl.shape[0] colors_cyl = [plt.cm.Spectral(i/float(n_categories)) for i in range(n_categories)]# By Make Data df_make = df_raw.groupby('manufacturer').size().reset_index(name='counts_make') n_categories = df_make.shape[0] colors_make = [plt.cm.tab20b(i/float(n_categories)) for i in range(n_categories)]# Draw Plot and Decorate fig = plt.figure(FigureClass=Waffle,plots={'311': {'values': df_class['counts_class'],'labels': ["{1}".format(n[0], n[1]) for n in df_class[['class', 'counts_class']].itertuples()],'legend': {'loc': 'upper left', 'bbox_to_anchor': (1.05, 1), 'fontsize': 12, 'title':'Class'},'title': {'label': '# Vehicles by Class', 'loc': 'center', 'fontsize':18},'colors': colors_class},'312': {'values': df_cyl['counts_cyl'],'labels': ["{1}".format(n[0], n[1]) for n in df_cyl[['cyl', 'counts_cyl']].itertuples()],'legend': {'loc': 'upper left', 'bbox_to_anchor': (1.05, 1), 'fontsize': 12, 'title':'Cyl'},'title': {'label': '# Vehicles by Cyl', 'loc': 'center', 'fontsize':18},'colors': colors_cyl},'313': {'values': df_make['counts_make'],'labels': ["{1}".format(n[0], n[1]) for n in df_make[['manufacturer', 'counts_make']].itertuples()],'legend': {'loc': 'upper left', 'bbox_to_anchor': (1.05, 1), 'fontsize': 12, 'title':'Manufacturer'},'title': {'label': '# Vehicles by Make', 'loc': 'center', 'fontsize':18},'colors': colors_make}},rows=9,figsize=(16, 14) )


32. Pie Chart(餅狀圖)

餅狀圖大家應(yīng)該很熟悉,這里只有一個(gè)小建議:明確標(biāo)記餅狀圖每個(gè)部分的百分比或數(shù)字。

# Import df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare Data df = df_raw.groupby('class').size()# Make the plot with pandas df.plot(kind='pie', subplots=True, figsize=(8, 8), dpi= 80) plt.title("Pie Chart of Vehicle Class - Bad") plt.ylabel("") plt.show()

# Import df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare Data df = df_raw.groupby('class').size().reset_index(name='counts')# Draw Plot fig, ax = plt.subplots(figsize=(12, 7), subplot_kw=dict(aspect="equal"), dpi= 80)data = df['counts'] categories = df['class'] explode = [0,0,0,0,0,0.1,0]def func(pct, allvals):absolute = int(pct/100.*np.sum(allvals))return "{:.1f}% ({:d} )".format(pct, absolute)wedges, texts, autotexts = ax.pie(data, autopct=lambda pct: func(pct, data),textprops=dict(color="w"), colors=plt.cm.Dark2.colors,startangle=140,explode=explode)# Decoration ax.legend(wedges, categories, title="Vehicle Class", loc="center left", bbox_to_anchor=(1, 0, 0.5, 1)) plt.setp(autotexts, size=10, weight=700) ax.set_title("Class of Vehicles: Pie Chart") plt.show()


33. Treemap(樹狀圖)

# pip install squarify import squarify # Import Data df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare Data df = df_raw.groupby('class').size().reset_index(name='counts') labels = df.apply(lambda x: str(x[0]) + "\n (" + str(x[1]) + ")", axis=1) sizes = df['counts'].values.tolist() colors = [plt.cm.Spectral(i/float(len(labels))) for i in range(len(labels))]# Draw Plot plt.figure(figsize=(12,8), dpi= 80) squarify.plot(sizes=sizes, label=labels, color=colors, alpha=.8)# Decorate plt.title('Treemap of Vechile Class') plt.axis('off') plt.show()


34. Bar Chart(條形圖)

條形圖是根據(jù)計(jì)數(shù)或任何給定指標(biāo)而可視化條目。在下面的圖表中,為每個(gè)條目使用了不同的顏色,但通常可能希望為所有條目選擇一種顏色,除非按組對它們進(jìn)行著色。顏色名稱存儲(chǔ)在all_colors下面的代碼中。可以通過設(shè)置color參數(shù)來更改條形的顏色。

import random# Import Data df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")# Prepare Data df = df_raw.groupby('manufacturer').size().reset_index(name='counts') n = df['manufacturer'].unique().__len__()+1 all_colors = list(plt.cm.colors.cnames.keys()) random.seed(100) c = random.choices(all_colors, k=n)# Plot Bars plt.figure(figsize=(16,10), dpi= 80) plt.bar(df['manufacturer'], df['counts'], color=c, width=.5) for i, val in enumerate(df['counts'].values):plt.text(i, val, float(val), horizontalalignment='center',verticalalignment='bottom', fontdict={'fontweight':500, 'size':12})# Decoration plt.gca().set_xticklabels(df['manufacturer'], rotation=60, horizontalalignment= 'right') plt.title("Number of Vehicles by Manaufacturers", fontsize=22) plt.ylabel('# Vehicles') plt.ylim(0, 45) plt.show()


Change

35. Time Series Plot(時(shí)間序列圖)

時(shí)間序列圖用于顯示給定度量隨時(shí)間變化的方式。在這里,可以看到1949年至1969年間航空客運(yùn)量的變化情況。

# Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv')# Draw Plot plt.figure(figsize=(16,10), dpi= 80) plt.plot('date', 'traffic', data=df, color='tab:red')# Decoration plt.ylim(50, 750) xtick_location = df.index.tolist()[::12] xtick_labels = [x[-4:] for x in df.date.tolist()[::12]] plt.xticks(ticks=xtick_location, labels=xtick_labels, rotation=0, fontsize=12, horizontalalignment='center', alpha=.7) plt.yticks(fontsize=12, alpha=.7) plt.title("Air Passengers Traffic (1949 - 1969)", fontsize=22) plt.grid(axis='both', alpha=.3)# Remove borders plt.gca().spines["top"].set_alpha(0.0) plt.gca().spines["bottom"].set_alpha(0.3) plt.gca().spines["right"].set_alpha(0.0) plt.gca().spines["left"].set_alpha(0.3) plt.show()


36. Time Series with Peaks and Troughs Annotated(帶波峰波谷標(biāo)記的時(shí)序圖

下面的時(shí)間序列繪制了所有的波峰和波谷,并注釋了所選特殊事件的發(fā)生。

# Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv')# Get the Peaks and Troughs data = df['traffic'].values doublediff = np.diff(np.sign(np.diff(data))) peak_locations = np.where(doublediff == -2)[0] + 1doublediff2 = np.diff(np.sign(np.diff(-1*data))) trough_locations = np.where(doublediff2 == -2)[0] + 1# Draw Plot plt.figure(figsize=(16,10), dpi= 80) plt.plot('date', 'traffic', data=df, color='tab:blue', label='Air Traffic') plt.scatter(df.date[peak_locations], df.traffic[peak_locations], marker=mpl.markers.CARETUPBASE, color='tab:green', s=100, label='Peaks') plt.scatter(df.date[trough_locations], df.traffic[trough_locations], marker=mpl.markers.CARETDOWNBASE, color='tab:red', s=100, label='Troughs')# Annotate for t, p in zip(trough_locations[1::5], peak_locations[::3]):plt.text(df.date[p], df.traffic[p]+15, df.date[p], horizontalalignment='center', color='darkgreen')plt.text(df.date[t], df.traffic[t]-35, df.date[t], horizontalalignment='center', color='darkred')# Decoration plt.ylim(50,750) xtick_location = df.index.tolist()[::6] xtick_labels = df.date.tolist()[::6] plt.xticks(ticks=xtick_location, labels=xtick_labels, rotation=90, fontsize=12, alpha=.7) plt.title("Peak and Troughs of Air Passengers Traffic (1949 - 1969)", fontsize=22) plt.yticks(fontsize=12, alpha=.7)# Lighten borders plt.gca().spines["top"].set_alpha(.0) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(.0) plt.gca().spines["left"].set_alpha(.3)plt.legend(loc='upper left') plt.grid(axis='y', alpha=.3) plt.show()


37. Autocorrelation (ACF) and Partial Autocorrelation (PACF) Plot(自相關(guān)和部分自相關(guān)圖

ACF圖顯示時(shí)間序列與其自身滯后的相關(guān)性。

PACF在另一方面顯示了任何給定滯后(時(shí)間序列)與當(dāng)前序列的自相關(guān),但是刪除了滯后的貢獻(xiàn)。

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf# Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv')# Draw Plot fig, (ax1, ax2) = plt.subplots(1, 2,figsize=(16,6), dpi= 80) plot_acf(df.traffic.tolist(), ax=ax1, lags=50) plot_pacf(df.traffic.tolist(), ax=ax2, lags=20)# Decorate # lighten the borders ax1.spines["top"].set_alpha(.3); ax2.spines["top"].set_alpha(.3) ax1.spines["bottom"].set_alpha(.3); ax2.spines["bottom"].set_alpha(.3) ax1.spines["right"].set_alpha(.3); ax2.spines["right"].set_alpha(.3) ax1.spines["left"].set_alpha(.3); ax2.spines["left"].set_alpha(.3)# font size of tick labels ax1.tick_params(axis='both', labelsize=12) ax2.tick_params(axis='both', labelsize=12) plt.show()


38. Cross Correlation plot(交叉相關(guān)圖)

互相關(guān)圖顯示了兩個(gè)時(shí)間序列相互之間的滯后。

import statsmodels.tsa.stattools as stattools# Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/mortality.csv') x = df['mdeaths'] y = df['fdeaths']# Compute Cross Correlations ccs = stattools.ccf(x, y)[:100] nlags = len(ccs)# Compute the Significance level # ref: https://stats.stackexchange.com/questions/3115/cross-correlation-significance-in-r/3128#3128 conf_level = 2 / np.sqrt(nlags)# Draw Plot plt.figure(figsize=(12,7), dpi= 80)plt.hlines(0, xmin=0, xmax=100, color='gray') # 0 axis plt.hlines(conf_level, xmin=0, xmax=100, color='gray') plt.hlines(-conf_level, xmin=0, xmax=100, color='gray')plt.bar(x=np.arange(len(ccs)), height=ccs, width=.3)# Decoration plt.title('$Cross\; Correlation\; Plot:\; mdeaths\; vs\; fdeaths$', fontsize=22) plt.xlim(0,len(ccs)) plt.show()


39. Time Series Decomposition Plot(時(shí)間序列分解圖)

from statsmodels.tsa.seasonal import seasonal_decompose from dateutil.parser import parse# Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv') dates = pd.DatetimeIndex([parse(d).strftime('%Y-%m-01') for d in df['date']]) df.set_index(dates, inplace=True)# Decompose result = seasonal_decompose(df['traffic'], model='multiplicative')# Plot plt.rcParams.update({'figure.figsize': (10,10)}) result.plot().suptitle('Time Series Decomposition of Air Passengers') plt.show()


40. Multiple Time Series(多時(shí)間序列)

可以繪制多個(gè)時(shí)間序列,如下所示。

# Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/mortality.csv')# Define the upper limit, lower limit, interval of Y axis and colors y_LL = 100 y_UL = int(df.iloc[:, 1:].max().max()*1.1) y_interval = 400 mycolors = ['tab:red', 'tab:blue', 'tab:green', 'tab:orange'] # Draw Plot and Annotate fig, ax = plt.subplots(1,1,figsize=(16, 9), dpi= 80) columns = df.columns[1:] for i, column in enumerate(columns): plt.plot(df.date.values, df[column].values, lw=1.5, color=mycolors[i]) plt.text(df.shape[0]+1, df[column].values[-1], column, fontsize=14, color=mycolors[i])# Draw Tick lines for y in range(y_LL, y_UL, y_interval): plt.hlines(y, xmin=0, xmax=71, colors='black', alpha=0.3, linestyles="--", lw=0.5)# Decorations plt.tick_params(axis="both", which="both", bottom=False, top=False, labelbottom=True, left=False, right=False, labelleft=True) # Lighten borders plt.gca().spines["top"].set_alpha(.3) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(.3) plt.gca().spines["left"].set_alpha(.3)plt.title('Number of Deaths from Lung Diseases in the UK (1974-1979)', fontsize=22) plt.yticks(range(y_LL, y_UL, y_interval), [str(y) for y in range(y_LL, y_UL, y_interval)], fontsize=12) plt.xticks(range(0, df.shape[0], 12), df.date.values[::12], horizontalalignment='left', fontsize=12) plt.ylim(y_LL, y_UL) plt.xlim(-2, 80) plt.show()


41. Plotting with different scales using secondary Y axis(使用輔助Y軸來繪制不同范圍的圖形

如果要顯示在同一時(shí)間點(diǎn)測量兩個(gè)不同數(shù)量的兩個(gè)時(shí)間序列,則可以在右側(cè)的輔助Y軸上再繪制第二個(gè)系列。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/economics.csv")x = df['date'] y1 = df['psavert'] y2 = df['unemploy']# Plot Line1 (Left Y Axis) fig, ax1 = plt.subplots(1,1,figsize=(16,9), dpi= 80) ax1.plot(x, y1, color='tab:red')# Plot Line2 (Right Y Axis) ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis ax2.plot(x, y2, color='tab:blue')# Decorations # ax1 (left Y axis) ax1.set_xlabel('Year', fontsize=20) ax1.tick_params(axis='x', rotation=0, labelsize=12) ax1.set_ylabel('Personal Savings Rate', color='tab:red', fontsize=20) ax1.tick_params(axis='y', rotation=0, labelcolor='tab:red' ) ax1.grid(alpha=.4)# ax2 (right Y axis) ax2.set_ylabel("# Unemployed (1000's)", color='tab:blue', fontsize=20) ax2.tick_params(axis='y', labelcolor='tab:blue') ax2.set_xticks(np.arange(0, len(x), 60)) ax2.set_xticklabels(x[::60], rotation=90, fontdict={'fontsize':10}) ax2.set_title("Personal Savings Rate vs Unemployed: Plotting in Secondary Y Axis", fontsize=22) fig.tight_layout() plt.show()


42. Time Series with Error Bands(帶有誤差帶的時(shí)間序列)

from scipy.stats import sem# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/user_orders_hourofday.csv") df_mean = df.groupby('order_hour_of_day').quantity.mean() df_se = df.groupby('order_hour_of_day').quantity.apply(sem).mul(1.96)# Plot plt.figure(figsize=(16,10), dpi= 80) plt.ylabel("# Orders", fontsize=16) x = df_mean.index plt.plot(x, df_mean, color="white", lw=2) plt.fill_between(x, df_mean - df_se, df_mean + df_se, color="#3F5D7D") # Decorations # Lighten borders plt.gca().spines["top"].set_alpha(0) plt.gca().spines["bottom"].set_alpha(1) plt.gca().spines["right"].set_alpha(0) plt.gca().spines["left"].set_alpha(1) plt.xticks(x[::2], [str(d) for d in x[::2]] , fontsize=12) plt.title("User Orders by Hour of Day (95% confidence)", fontsize=22) plt.xlabel("Hour of Day")s, e = plt.gca().get_xlim() plt.xlim(s, e)# Draw Horizontal Tick lines for y in range(8, 20, 2): plt.hlines(y, xmin=s, xmax=e, colors='black', alpha=0.5, linestyles="--", lw=0.5)plt.show()

"Data Source: https://www.kaggle.com/olistbr/brazilian-ecommerce#olist_orders_dataset.csv" from dateutil.parser import parse from scipy.stats import sem# Import Data df_raw = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/orders_45d.csv', parse_dates=['purchase_time', 'purchase_date'])# Prepare Data: Daily Mean and SE Bands df_mean = df_raw.groupby('purchase_date').quantity.mean() df_se = df_raw.groupby('purchase_date').quantity.apply(sem).mul(1.96)# Plot plt.figure(figsize=(16,10), dpi= 80) plt.ylabel("# Daily Orders", fontsize=16) x = [d.date().strftime('%Y-%m-%d') for d in df_mean.index] plt.plot(x, df_mean, color="white", lw=2) plt.fill_between(x, df_mean - df_se, df_mean + df_se, color="#3F5D7D") # Decorations # Lighten borders plt.gca().spines["top"].set_alpha(0) plt.gca().spines["bottom"].set_alpha(1) plt.gca().spines["right"].set_alpha(0) plt.gca().spines["left"].set_alpha(1) plt.xticks(x[::6], [str(d) for d in x[::6]] , fontsize=12) plt.title("Daily Order Quantity of Brazilian Retail with Error Bands (95% confidence)", fontsize=20)# Axis limits s, e = plt.gca().get_xlim() plt.xlim(s, e-2) plt.ylim(4, 10)# Draw Horizontal Tick lines for y in range(5, 10, 1): plt.hlines(y, xmin=s, xmax=e, colors='black', alpha=0.5, linestyles="--", lw=0.5)plt.show()


43. Stacked Area Chart(堆積面積圖

堆積面積圖可以直觀地顯示多個(gè)時(shí)間序列的貢獻(xiàn)程度,因此可以輕松地相互比較。

# Import Data df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/nightvisitors.csv')# Decide Colors mycolors = ['tab:red', 'tab:blue', 'tab:green', 'tab:orange', 'tab:brown', 'tab:grey', 'tab:pink', 'tab:olive'] # Draw Plot and Annotate fig, ax = plt.subplots(1,1,figsize=(16, 9), dpi= 80) columns = df.columns[1:] labs = columns.values.tolist()# Prepare data x = df['yearmon'].values.tolist() y0 = df[columns[0]].values.tolist() y1 = df[columns[1]].values.tolist() y2 = df[columns[2]].values.tolist() y3 = df[columns[3]].values.tolist() y4 = df[columns[4]].values.tolist() y5 = df[columns[5]].values.tolist() y6 = df[columns[6]].values.tolist() y7 = df[columns[7]].values.tolist() y = np.vstack([y0, y2, y4, y6, y7, y5, y1, y3])# Plot for each column labs = columns.values.tolist() ax = plt.gca() ax.stackplot(x, y, labels=labs, colors=mycolors, alpha=0.8)# Decorations ax.set_title('Night Visitors in Australian Regions', fontsize=18) ax.set(ylim=[0, 100000]) ax.legend(fontsize=10, ncol=4) plt.xticks(x[::5], fontsize=10, horizontalalignment='center') plt.yticks(np.arange(10000, 100000, 20000), fontsize=10) plt.xlim(x[0], x[-1])# Lighten borders plt.gca().spines["top"].set_alpha(0) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(0) plt.gca().spines["left"].set_alpha(.3)plt.show()


44. Area Chart UnStacked(未堆積的面積圖

未堆積區(qū)域圖用于可視化兩個(gè)或更多個(gè)系列相對于彼此的進(jìn)度(起伏)。在下面的圖表中,您可以清楚地看到隨著失業(yè)中位數(shù)持續(xù)時(shí)間的增加,個(gè)人儲(chǔ)蓄率會(huì)下降。未堆積的區(qū)域圖表很好地揭示了這種現(xiàn)象。

# Import Data df = pd.read_csv("https://github.com/selva86/datasets/raw/master/economics.csv")# Prepare Data x = df['date'].values.tolist() y1 = df['psavert'].values.tolist() y2 = df['uempmed'].values.tolist() mycolors = ['tab:red', 'tab:blue', 'tab:green', 'tab:orange', 'tab:brown', 'tab:grey', 'tab:pink', 'tab:olive'] columns = ['psavert', 'uempmed']# Draw Plot fig, ax = plt.subplots(1, 1, figsize=(16,9), dpi= 80) ax.fill_between(x, y1=y1, y2=0, label=columns[1], alpha=0.5, color=mycolors[1], linewidth=2) ax.fill_between(x, y1=y2, y2=0, label=columns[0], alpha=0.5, color=mycolors[0], linewidth=2)# Decorations ax.set_title('Personal Savings Rate vs Median Duration of Unemployment', fontsize=18) ax.set(ylim=[0, 30]) ax.legend(loc='best', fontsize=12) plt.xticks(x[::50], fontsize=10, horizontalalignment='center') plt.yticks(np.arange(2.5, 30.0, 2.5), fontsize=10) plt.xlim(-10, x[-1])# Draw Tick lines for y in np.arange(2.5, 30.0, 2.5): plt.hlines(y, xmin=0, xmax=len(x), colors='black', alpha=0.3, linestyles="--", lw=0.5)# Lighten borders plt.gca().spines["top"].set_alpha(0) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(0) plt.gca().spines["left"].set_alpha(.3) plt.show()


45. Calendar Heat Map(日歷熱力圖

與時(shí)間序列圖相比,日歷熱力圖是基于時(shí)間的數(shù)據(jù)可視化的備選項(xiàng)。雖然可以在視覺上吸引人,但數(shù)值并不十分明顯。然而,它可以很好地描繪極端值和假日效果。

import matplotlib as mpl import calmap# Import Data df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/yahoo.csv", parse_dates=['date']) df.set_index('date', inplace=True)# Plot plt.figure(figsize=(16,10), dpi= 80) calmap.calendarplot(df['2014']['VIX.Close'], fig_kws={'figsize': (16,10)}, yearlabel_kws={'color':'black', 'fontsize':14}, subplot_kws={'title':'Yahoo Stock Prices'}) plt.show()


46. Seasonal Plot(季度圖)

from dateutil.parser import parse # Import Data df = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv')# Prepare data df['year'] = [parse(d).year for d in df.date] df['month'] = [parse(d).strftime('%b') for d in df.date] years = df['year'].unique()# Draw Plot mycolors = ['tab:red', 'tab:blue', 'tab:green', 'tab:orange', 'tab:brown', 'tab:grey', 'tab:pink', 'tab:olive', 'deeppink', 'steelblue', 'firebrick', 'mediumseagreen'] plt.figure(figsize=(16,10), dpi= 80)for i, y in enumerate(years):plt.plot('month', 'traffic', data=df.loc[df.year==y, :], color=mycolors[i], label=y)plt.text(df.loc[df.year==y, :].shape[0]-.9,df.loc[df.year==y, 'traffic'][-1:].values[0], y, fontsize=12, color=mycolors[i])# Decoration plt.ylim(50,750) plt.xlim(-0.3, 11) plt.ylabel('$Air Traffic$') plt.yticks(fontsize=12, alpha=.7) plt.title("Monthly Seasonal Plot: Air Passengers Traffic (1949 - 1969)", fontsize=22) plt.grid(axis='y', alpha=.3)# Remove borders plt.gca().spines["top"].set_alpha(0.0) plt.gca().spines["bottom"].set_alpha(0.5) plt.gca().spines["right"].set_alpha(0.0) plt.gca().spines["left"].set_alpha(0.5) # plt.legend(loc='upper right', ncol=2, fontsize=12) plt.show()


Groups

47. Dendrogram(樹狀圖)

樹形圖基于給定的距離度量將相似的點(diǎn)組合在一起,并基于點(diǎn)的相似性將它們組織在樹狀鏈接中。

import scipy.cluster.hierarchy as shc# Import Data df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/USArrests.csv')# Plot plt.figure(figsize=(16, 10), dpi= 80) plt.title("USArrests Dendograms", fontsize=22) dend = shc.dendrogram(shc.linkage(df[['Murder', 'Assault', 'UrbanPop', 'Rape']], method='ward'), labels=df.State.values, color_threshold=100) plt.xticks(fontsize=12) plt.show()


48. Cluster Plot(簇狀圖)

Cluster Plot可用于劃分屬于同一群集的點(diǎn)。下面是根據(jù)USArrests數(shù)據(jù)集將美國各州分為5組的代表性示例。該集群圖使用“謀殺”和“攻擊”列作為X和Y軸。或者,您可以將第一個(gè)到主要組件用作X軸和Y軸。

from sklearn.cluster import AgglomerativeClustering from scipy.spatial import ConvexHull# Import Data df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/USArrests.csv')# Agglomerative Clustering cluster = AgglomerativeClustering(n_clusters=5, affinity='euclidean', linkage='ward') cluster.fit_predict(df[['Murder', 'Assault', 'UrbanPop', 'Rape']]) # Plot plt.figure(figsize=(14, 10), dpi= 80) plt.scatter(df.iloc[:,0], df.iloc[:,1], c=cluster.labels_, cmap='tab10') # Encircle def encircle(x,y, ax=None, **kw):if not ax: ax=plt.gca()p = np.c_[x,y]hull = ConvexHull(p)poly = plt.Polygon(p[hull.vertices,:], **kw)ax.add_patch(poly)# Draw polygon surrounding vertices encircle(df.loc[cluster.labels_ == 0, 'Murder'], df.loc[cluster.labels_ == 0, 'Assault'], ec="k",fc="gold", alpha=0.2, linewidth=0) encircle(df.loc[cluster.labels_ == 1, 'Murder'], df.loc[cluster.labels_ == 1, 'Assault'], ec="k", fc="tab:blue", alpha=0.2, linewidth=0) encircle(df.loc[cluster.labels_ == 2, 'Murder'], df.loc[cluster.labels_ == 2, 'Assault'], ec="k", fc="tab:red", alpha=0.2, linewidth=0) encircle(df.loc[cluster.labels_ == 3, 'Murder'], df.loc[cluster.labels_ == 3, 'Assault'], ec="k", fc="tab:green", alpha=0.2, linewidth=0) encircle(df.loc[cluster.labels_ == 4, 'Murder'], df.loc[cluster.labels_ == 4, 'Assault'], ec="k", fc="tab:orange", alpha=0.2, linewidth=0)# Decorations plt.xlabel('Murder'); plt.xticks(fontsize=12) plt.ylabel('Assault'); plt.yticks(fontsize=12) plt.title('Agglomerative Clustering of USArrests (5 Groups)', fontsize=22) plt.show()


49. Andrews Curve(安德魯斯曲線

安德魯斯曲線有助于可視化是否存在基于給定分組的數(shù)字特征的固有分組。如果功能(數(shù)據(jù)集中的列)無法區(qū)分組(cyl)那么線條將不會(huì)很好地隔離,如下所示。

from pandas.plotting import andrews_curves# Import df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv") df.drop(['cars', 'carname'], axis=1, inplace=True)# Plot plt.figure(figsize=(12,9), dpi= 80) andrews_curves(df, 'cyl', colormap='Set1')# Lighten borders plt.gca().spines["top"].set_alpha(0) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(0) plt.gca().spines["left"].set_alpha(.3)plt.title('Andrews Curves of mtcars', fontsize=22) plt.xlim(-3,3) plt.grid(alpha=0.3) plt.xticks(fontsize=12) plt.yticks(fontsize=12) plt.show()


50. Parallel Coordinates(平行坐標(biāo)

平行坐標(biāo)有助于可視化特征是否有助于有效地隔離組。如果實(shí)現(xiàn)隔離,則該特征可能在預(yù)測該組時(shí)非常有用。

from pandas.plotting import parallel_coordinates# Import Data df_final = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/diamonds_filter.csv")# Plot plt.figure(figsize=(12,9), dpi= 80) parallel_coordinates(df_final, 'cut', colormap='Dark2')# Lighten borders plt.gca().spines["top"].set_alpha(0) plt.gca().spines["bottom"].set_alpha(.3) plt.gca().spines["right"].set_alpha(0) plt.gca().spines["left"].set_alpha(.3)plt.title('Parallel Coordinated of Diamonds', fontsize=22) plt.grid(alpha=0.3) plt.xticks(fontsize=12) plt.yticks(fontsize=12) plt.show()

?

總結(jié)

以上是生活随笔為你收集整理的50个最有用的Matplotlib数据分析与可视化图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

牲交欧美兽交欧美 | 一个人看的视频www在线 | 黑森林福利视频导航 | 日本熟妇人妻xxxxx人hd | 日本一卡二卡不卡视频查询 | 亚洲成av人综合在线观看 | 夜精品a片一区二区三区无码白浆 | 国产成人人人97超碰超爽8 | 精品人妻人人做人人爽夜夜爽 | 中文字幕人妻无码一夲道 | 欧美丰满熟妇xxxx性ppx人交 | 欧美野外疯狂做受xxxx高潮 | 国产午夜福利亚洲第一 | www国产亚洲精品久久久日本 | 欧美国产亚洲日韩在线二区 | 高潮毛片无遮挡高清免费 | 性色av无码免费一区二区三区 | 少妇高潮一区二区三区99 | 高潮毛片无遮挡高清免费视频 | 领导边摸边吃奶边做爽在线观看 | 伊人久久大香线蕉亚洲 | 香港三级日本三级妇三级 | 国产精品久久久久久亚洲毛片 | 熟女体下毛毛黑森林 | 妺妺窝人体色www婷婷 | 两性色午夜免费视频 | 免费看少妇作爱视频 | 色婷婷久久一区二区三区麻豆 | 国产精品国产三级国产专播 | 日日摸夜夜摸狠狠摸婷婷 | 成人综合网亚洲伊人 | 老熟妇乱子伦牲交视频 | 捆绑白丝粉色jk震动捧喷白浆 | 色综合久久久无码中文字幕 | 无码播放一区二区三区 | 精品少妇爆乳无码av无码专区 | 久久视频在线观看精品 | 男人的天堂av网站 | 无码人妻av免费一区二区三区 | 狂野欧美性猛xxxx乱大交 | 东京无码熟妇人妻av在线网址 | 久久精品人人做人人综合 | 亚洲日韩中文字幕在线播放 | 伊人久久婷婷五月综合97色 | 高清不卡一区二区三区 | 少妇被黑人到高潮喷出白浆 | 国产成人一区二区三区在线观看 | 精品久久8x国产免费观看 | 国产精品久久久久久亚洲毛片 | 99久久人妻精品免费一区 | 成人免费视频一区二区 | 黄网在线观看免费网站 | 亚洲精品国偷拍自产在线麻豆 | 久久久精品成人免费观看 | 国产 浪潮av性色四虎 | 无码国产乱人伦偷精品视频 | 欧美大屁股xxxxhd黑色 | 欧美 日韩 人妻 高清 中文 | 欧美日韩在线亚洲综合国产人 | 久久婷婷五月综合色国产香蕉 | 天天综合网天天综合色 | 国产又爽又猛又粗的视频a片 | 日本大乳高潮视频在线观看 | 国精品人妻无码一区二区三区蜜柚 | 欧美日韩精品 | 无码人妻丰满熟妇区毛片18 | 国产激情综合五月久久 | 欧美激情综合亚洲一二区 | 国产精品永久免费视频 | 中文字幕无线码免费人妻 | 乌克兰少妇xxxx做受 | 精品久久8x国产免费观看 | 成人无码影片精品久久久 | 国产乱人伦偷精品视频 | 国产成人综合美国十次 | 伊人久久大香线蕉av一区二区 | 久久99精品久久久久久动态图 | 日本www一道久久久免费榴莲 | 午夜精品久久久内射近拍高清 | 最近免费中文字幕中文高清百度 | 无码一区二区三区在线 | 妺妺窝人体色www在线小说 | 国产麻豆精品一区二区三区v视界 | 色诱久久久久综合网ywww | 强辱丰满人妻hd中文字幕 | 久久久成人毛片无码 | 久久亚洲精品成人无码 | 成人无码精品1区2区3区免费看 | 国产一区二区三区四区五区加勒比 | 99久久精品国产一区二区蜜芽 | 成在人线av无码免观看麻豆 | 狠狠色噜噜狠狠狠7777奇米 | 久久精品国产一区二区三区肥胖 | 精品国产av色一区二区深夜久久 | 国产精品a成v人在线播放 | 久久精品人人做人人综合 | 日韩精品乱码av一区二区 | 国产成人无码a区在线观看视频app | 中国女人内谢69xxxxxa片 | 久久精品人妻少妇一区二区三区 | 国产情侣作爱视频免费观看 | 午夜精品久久久内射近拍高清 | 欧美乱妇无乱码大黄a片 | 精品欧美一区二区三区久久久 | a国产一区二区免费入口 | 国产亚洲视频中文字幕97精品 | 亚洲精品成人福利网站 | 无码人妻久久一区二区三区不卡 | 亚洲精品午夜国产va久久成人 | 无码av最新清无码专区吞精 | 香港三级日本三级妇三级 | 国产成人无码av片在线观看不卡 | 成人精品视频一区二区三区尤物 | www国产精品内射老师 | 一本无码人妻在中文字幕免费 | 国产又爽又黄又刺激的视频 | 亚欧洲精品在线视频免费观看 | 久久精品成人欧美大片 | 国内精品人妻无码久久久影院蜜桃 | 亚洲色欲色欲欲www在线 | 国产福利视频一区二区 | 日韩少妇内射免费播放 | 久久久无码中文字幕久... | 中文字幕亚洲情99在线 | 国内精品久久毛片一区二区 | 国产精品怡红院永久免费 | 少妇性荡欲午夜性开放视频剧场 | 成人免费无码大片a毛片 | 亚洲国产精品无码一区二区三区 | 性欧美大战久久久久久久 | 婷婷六月久久综合丁香 | 日本熟妇人妻xxxxx人hd | 国内精品久久久久久中文字幕 | 亚洲精品综合一区二区三区在线 | 亚洲国产欧美日韩精品一区二区三区 | 精品无码国产自产拍在线观看蜜 | 男女猛烈xx00免费视频试看 | 熟妇人妻中文av无码 | 日韩av无码一区二区三区不卡 | 成人av无码一区二区三区 | 女人被男人躁得好爽免费视频 | 国产精品人人妻人人爽 | 中文亚洲成a人片在线观看 | 亚洲欧洲无卡二区视頻 | 久久综合激激的五月天 | 精品国产一区av天美传媒 | 亚洲成av人影院在线观看 | 国产精品久久久久久亚洲毛片 | 久久国产精品偷任你爽任你 | 亚洲乱码国产乱码精品精 | 亚洲成a人片在线观看日本 | 国产精品久久国产精品99 | 久久五月精品中文字幕 | 亚洲人成影院在线观看 | 一本一道久久综合久久 | 精品国产一区二区三区av 性色 | 3d动漫精品啪啪一区二区中 | 久精品国产欧美亚洲色aⅴ大片 | 澳门永久av免费网站 | 国产午夜视频在线观看 | 狠狠噜狠狠狠狠丁香五月 | 色综合视频一区二区三区 | 国产suv精品一区二区五 | 亚洲精品一区二区三区在线 | 日日摸夜夜摸狠狠摸婷婷 | 乌克兰少妇性做爰 | 东京热一精品无码av | 婷婷六月久久综合丁香 | 中文字幕无码乱人伦 | 亚洲色欲色欲天天天www | 亚洲中文字幕在线无码一区二区 | 国产精品内射视频免费 | 欧美 日韩 人妻 高清 中文 | 成熟人妻av无码专区 | 国产又爽又黄又刺激的视频 | 日本精品高清一区二区 | 亚洲欧美日韩成人高清在线一区 | 一本大道久久东京热无码av | 精品无码国产自产拍在线观看蜜 | 久久久精品成人免费观看 | 久久国产自偷自偷免费一区调 | 亚洲一区二区三区国产精华液 | 亚洲精品久久久久久久久久久 | 精品无人区无码乱码毛片国产 | 少妇高潮一区二区三区99 | 国内少妇偷人精品视频免费 | 国产三级精品三级男人的天堂 | 久久久久se色偷偷亚洲精品av | 98国产精品综合一区二区三区 | 亚洲成a人一区二区三区 | 中文字幕+乱码+中文字幕一区 | 欧美一区二区三区 | 亚洲春色在线视频 | 精品久久综合1区2区3区激情 | 色婷婷av一区二区三区之红樱桃 | aa片在线观看视频在线播放 | 97夜夜澡人人爽人人喊中国片 | 学生妹亚洲一区二区 | 欧美人与物videos另类 | 久久熟妇人妻午夜寂寞影院 | 久久国产精品二国产精品 | 国产精品18久久久久久麻辣 | 美女极度色诱视频国产 | 精品厕所偷拍各类美女tp嘘嘘 | 噜噜噜亚洲色成人网站 | 精品人妻人人做人人爽 | 精品国产av色一区二区深夜久久 | 亚洲日本va中文字幕 | 在线 国产 欧美 亚洲 天堂 | 国产午夜手机精彩视频 | 精品国偷自产在线 | 欧美喷潮久久久xxxxx | 亚洲一区二区观看播放 | 女人被爽到呻吟gif动态图视看 | 老熟妇乱子伦牲交视频 | 人人妻人人澡人人爽精品欧美 | 国产亚洲精品精品国产亚洲综合 | www国产亚洲精品久久网站 | 无码乱肉视频免费大全合集 | 丝袜人妻一区二区三区 | 国产人妻精品一区二区三区 | 亚洲aⅴ无码成人网站国产app | 国产又爽又猛又粗的视频a片 | 狠狠色噜噜狠狠狠7777奇米 | 午夜理论片yy44880影院 | 漂亮人妻洗澡被公强 日日躁 | 丰满人妻一区二区三区免费视频 | 日日天日日夜日日摸 | 三上悠亚人妻中文字幕在线 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲欧美日韩成人高清在线一区 | 中文字幕av伊人av无码av | 亚洲人成影院在线观看 | 99久久久无码国产aaa精品 | 老熟女重囗味hdxx69 | 丰满少妇熟乱xxxxx视频 | 国产电影无码午夜在线播放 | 国内精品一区二区三区不卡 | 性色av无码免费一区二区三区 | 日日摸天天摸爽爽狠狠97 | 娇妻被黑人粗大高潮白浆 | 久久久无码中文字幕久... | 欧美国产日韩久久mv | 精品日本一区二区三区在线观看 | 亚洲人成影院在线无码按摩店 | 中文字幕无线码免费人妻 | 精品国产国产综合精品 | 亚洲精品综合一区二区三区在线 | 亚洲啪av永久无码精品放毛片 | 欧美35页视频在线观看 | 一个人看的www免费视频在线观看 | 黑人玩弄人妻中文在线 | 久久国产精品二国产精品 | 久久精品视频在线看15 | 国产成人精品无码播放 | 免费观看又污又黄的网站 | 狠狠综合久久久久综合网 | 中文字幕无码免费久久99 | 久久99精品国产.久久久久 | 久久午夜无码鲁丝片秋霞 | 岛国片人妻三上悠亚 | 国产97色在线 | 免 | 亚洲欧美国产精品专区久久 | 欧美精品免费观看二区 | 中文毛片无遮挡高清免费 | 亚洲一区二区三区国产精华液 | 人妻体内射精一区二区三四 | 在线视频网站www色 | 日本饥渴人妻欲求不满 | 又大又紧又粉嫩18p少妇 | 99久久精品午夜一区二区 | 亚洲一区av无码专区在线观看 | 青草青草久热国产精品 | 无码av中文字幕免费放 | 久久精品国产99精品亚洲 | 精品夜夜澡人妻无码av蜜桃 | 亚洲高清偷拍一区二区三区 | 国产精品无套呻吟在线 | 少妇人妻av毛片在线看 | 丁香花在线影院观看在线播放 | 又大又硬又爽免费视频 | 精品欧洲av无码一区二区三区 | 无码人妻少妇伦在线电影 | 天天摸天天碰天天添 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 精品久久综合1区2区3区激情 | 国产在热线精品视频 | 狠狠亚洲超碰狼人久久 | 少妇久久久久久人妻无码 | 久久久久久a亚洲欧洲av冫 | 亚洲日本va午夜在线电影 | 99久久精品国产一区二区蜜芽 | 午夜福利一区二区三区在线观看 | 男人的天堂2018无码 | 久久99精品久久久久婷婷 | 国产色xx群视频射精 | 欧美阿v高清资源不卡在线播放 | 最新版天堂资源中文官网 | 天天爽夜夜爽夜夜爽 | 亚洲小说图区综合在线 | www一区二区www免费 | 国产精品理论片在线观看 | 97久久精品无码一区二区 | 亚洲成av人在线观看网址 | 国产色xx群视频射精 | 精品国产青草久久久久福利 | 无遮无挡爽爽免费视频 | 亚洲精品国偷拍自产在线麻豆 | 国产艳妇av在线观看果冻传媒 | 国产激情无码一区二区app | 少妇厨房愉情理9仑片视频 | 久久精品人妻少妇一区二区三区 | 300部国产真实乱 | 熟妇人妻无码xxx视频 | 免费看男女做好爽好硬视频 | 久久久久久亚洲精品a片成人 | 亚洲中文字幕va福利 | 久久精品女人的天堂av | 荫蒂添的好舒服视频囗交 | 日日摸夜夜摸狠狠摸婷婷 | 日韩精品a片一区二区三区妖精 | 欧美freesex黑人又粗又大 | 欧美乱妇无乱码大黄a片 | 亚洲成av人在线观看网址 | 国产精品久久久一区二区三区 | 无码人妻久久一区二区三区不卡 | 国产婷婷色一区二区三区在线 | 亚洲成av人片在线观看无码不卡 | 亚洲一区二区三区国产精华液 | 三上悠亚人妻中文字幕在线 | 极品尤物被啪到呻吟喷水 | 国产精品高潮呻吟av久久 | 亚洲国产成人av在线观看 | 亚洲大尺度无码无码专区 | 国产9 9在线 | 中文 | 久久久精品456亚洲影院 | 国产婷婷色一区二区三区在线 | 久久亚洲中文字幕精品一区 | 午夜理论片yy44880影院 | 久久五月精品中文字幕 | 搡女人真爽免费视频大全 | 国产精品美女久久久久av爽李琼 | 国产午夜无码精品免费看 | 夜夜影院未满十八勿进 | 久久午夜无码鲁丝片午夜精品 | 欧美猛少妇色xxxxx | 成人无码视频免费播放 | 日本高清一区免费中文视频 | 日本丰满护士爆乳xxxx | 成人免费视频一区二区 | 人妻无码久久精品人妻 | 久久久久亚洲精品男人的天堂 | 精品人妻人人做人人爽 | 在线 国产 欧美 亚洲 天堂 | 亚洲国产一区二区三区在线观看 | 国产色视频一区二区三区 | 国产成人无码av一区二区 | 久9re热视频这里只有精品 | 久久国产劲爆∧v内射 | 宝宝好涨水快流出来免费视频 | 日本熟妇人妻xxxxx人hd | 丰满人妻被黑人猛烈进入 | 一区二区三区高清视频一 | 男人和女人高潮免费网站 | 国语精品一区二区三区 | 国产乱码精品一品二品 | 在教室伦流澡到高潮hnp视频 | 日韩精品久久久肉伦网站 | 99精品国产综合久久久久五月天 | 正在播放老肥熟妇露脸 | 欧美老人巨大xxxx做受 | 亚洲日本va中文字幕 | 97久久精品无码一区二区 | 粉嫩少妇内射浓精videos | 男人和女人高潮免费网站 | 久久综合色之久久综合 | 四虎国产精品一区二区 | 内射白嫩少妇超碰 | 亚洲自偷自偷在线制服 | 水蜜桃色314在线观看 | 精品无码一区二区三区的天堂 | 亚洲国产成人a精品不卡在线 | 中文字幕乱码中文乱码51精品 | 99久久婷婷国产综合精品青草免费 | 久久综合香蕉国产蜜臀av | 日韩精品无码一区二区中文字幕 | 亚洲人成影院在线无码按摩店 | 精品国精品国产自在久国产87 | 黑人粗大猛烈进出高潮视频 | 在线欧美精品一区二区三区 | 九九综合va免费看 | 久久精品国产99久久6动漫 | 一本色道久久综合狠狠躁 | 特黄特色大片免费播放器图片 | 无码福利日韩神码福利片 | 狠狠色欧美亚洲狠狠色www | 一二三四社区在线中文视频 | 兔费看少妇性l交大片免费 | 欧美午夜特黄aaaaaa片 | 国产香蕉97碰碰久久人人 | 亚洲色在线无码国产精品不卡 | 亚洲色偷偷男人的天堂 | 理论片87福利理论电影 | 内射白嫩少妇超碰 | 一本大道伊人av久久综合 | 丰满肥臀大屁股熟妇激情视频 | 天堂а√在线中文在线 | 国产午夜福利亚洲第一 | 亚洲色无码一区二区三区 | 67194成是人免费无码 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲娇小与黑人巨大交 | 国产性生交xxxxx无码 | 激情国产av做激情国产爱 | 婷婷五月综合激情中文字幕 | 永久免费观看国产裸体美女 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产亚洲日韩欧美另类第八页 | 99久久精品午夜一区二区 | 国产无遮挡又黄又爽免费视频 | 西西人体www44rt大胆高清 | 久久久成人毛片无码 | 久久人人97超碰a片精品 | 中文字幕精品av一区二区五区 | 伦伦影院午夜理论片 | 双乳奶水饱满少妇呻吟 | 亚洲综合色区中文字幕 | 国产av久久久久精东av | 日韩人妻无码一区二区三区久久99 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 中文字幕久久久久人妻 | 午夜免费福利小电影 | 免费人成在线视频无码 | 性色av无码免费一区二区三区 | 伊人久久大香线焦av综合影院 | 欧美日韩在线亚洲综合国产人 | 日本爽爽爽爽爽爽在线观看免 | 亲嘴扒胸摸屁股激烈网站 | 香港三级日本三级妇三级 | 色欲综合久久中文字幕网 | 少妇被粗大的猛进出69影院 | 欧美放荡的少妇 | 日韩 欧美 动漫 国产 制服 | 色综合久久88色综合天天 | 国产精品久久国产三级国 | 久久精品人人做人人综合试看 | 免费人成在线观看网站 | 久久久久成人片免费观看蜜芽 | 亚洲成av人影院在线观看 | 久久精品丝袜高跟鞋 | 国产色视频一区二区三区 | 精品无人区无码乱码毛片国产 | 国产内射爽爽大片视频社区在线 | 初尝人妻少妇中文字幕 | 成人影院yy111111在线观看 | 东京热一精品无码av | 永久免费观看国产裸体美女 | 中文字幕乱码人妻二区三区 | av人摸人人人澡人人超碰下载 | 女人被男人躁得好爽免费视频 | 亚洲国产欧美国产综合一区 | 亚洲色在线无码国产精品不卡 | 精品亚洲韩国一区二区三区 | 久久天天躁狠狠躁夜夜免费观看 | www国产亚洲精品久久久日本 | 国产女主播喷水视频在线观看 | 国产精品高潮呻吟av久久4虎 | 色老头在线一区二区三区 | 三上悠亚人妻中文字幕在线 | 国产美女精品一区二区三区 | 女人被男人躁得好爽免费视频 | 无码精品国产va在线观看dvd | 伊人久久大香线蕉av一区二区 | 日本一卡二卡不卡视频查询 | 一个人看的视频www在线 | 97夜夜澡人人爽人人喊中国片 | 亚洲 另类 在线 欧美 制服 | 日韩人妻无码一区二区三区久久99 | a片免费视频在线观看 | 国产亚洲tv在线观看 | 国产高清不卡无码视频 | 又大又黄又粗又爽的免费视频 | 麻豆国产人妻欲求不满 | 2019午夜福利不卡片在线 | 国产艳妇av在线观看果冻传媒 | 亚洲狠狠色丁香婷婷综合 | 亚洲综合精品香蕉久久网 | 久久久无码中文字幕久... | 亚洲中文字幕乱码av波多ji | 日本大香伊一区二区三区 | 内射巨臀欧美在线视频 | 久久无码中文字幕免费影院蜜桃 | 男女超爽视频免费播放 | 国产suv精品一区二区五 | 成 人 免费观看网站 | 国产乱人伦偷精品视频 | 亚洲高清偷拍一区二区三区 | 日日躁夜夜躁狠狠躁 | 强辱丰满人妻hd中文字幕 | 特大黑人娇小亚洲女 | 精品aⅴ一区二区三区 | 国色天香社区在线视频 | 国产午夜视频在线观看 | 国产农村乱对白刺激视频 | 欧美性黑人极品hd | 撕开奶罩揉吮奶头视频 | 亚洲国产av精品一区二区蜜芽 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 人人妻人人澡人人爽精品欧美 | 日本乱偷人妻中文字幕 | 熟妇人妻激情偷爽文 | 领导边摸边吃奶边做爽在线观看 | 丰满人妻一区二区三区免费视频 | 图片区 小说区 区 亚洲五月 | 无码任你躁久久久久久久 | 国产精品久久久久无码av色戒 | 窝窝午夜理论片影院 | 色综合久久久久综合一本到桃花网 | 国产av人人夜夜澡人人爽麻豆 | 无码人妻av免费一区二区三区 | 国产超级va在线观看视频 | 亚洲成a人片在线观看无码3d | 最近免费中文字幕中文高清百度 | 亚洲精品一区国产 | 人人澡人人妻人人爽人人蜜桃 | 3d动漫精品啪啪一区二区中 | 丝袜 中出 制服 人妻 美腿 | 欧美国产日韩久久mv | 日韩av无码一区二区三区 | 少女韩国电视剧在线观看完整 | 久热国产vs视频在线观看 | 乱人伦人妻中文字幕无码 | 高清国产亚洲精品自在久久 | 亚洲中文字幕av在天堂 | 亚洲日本在线电影 | 撕开奶罩揉吮奶头视频 | 久久久久av无码免费网 | 亚洲欧美日韩综合久久久 | 麻豆人妻少妇精品无码专区 | 国产亚av手机在线观看 | 强伦人妻一区二区三区视频18 | 色综合久久久无码网中文 | 国产精品久久精品三级 | 欧美国产日产一区二区 | 全球成人中文在线 | 中文字幕无码视频专区 | 55夜色66夜色国产精品视频 | 亚洲精品一区二区三区大桥未久 | 性欧美大战久久久久久久 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 成人影院yy111111在线观看 | 中文字幕 人妻熟女 | 亚洲精品成a人在线观看 | 久久久久成人片免费观看蜜芽 | 国产精品无码成人午夜电影 | 欧美一区二区三区视频在线观看 | 纯爱无遮挡h肉动漫在线播放 | 国产乱子伦视频在线播放 | 久久亚洲国产成人精品性色 | 无码人妻av免费一区二区三区 | 黑人大群体交免费视频 | 久久精品国产日本波多野结衣 | 天堂在线观看www | 麻豆蜜桃av蜜臀av色欲av | 欧美国产日产一区二区 | 熟妇人妻无乱码中文字幕 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲啪av永久无码精品放毛片 | 日日夜夜撸啊撸 | 国产人妖乱国产精品人妖 | 精品国产乱码久久久久乱码 | 人妻少妇精品久久 | 久久综合给久久狠狠97色 | 人人超人人超碰超国产 | 天堂一区人妻无码 | 性啪啪chinese东北女人 | 中文字幕人妻丝袜二区 | 最近中文2019字幕第二页 | 国产卡一卡二卡三 | 永久黄网站色视频免费直播 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产亚洲欧美在线专区 | 中文字幕亚洲情99在线 | 精品无码成人片一区二区98 | 久久久婷婷五月亚洲97号色 | 色综合久久中文娱乐网 | 青青青手机频在线观看 | 人妻人人添人妻人人爱 | 亚洲欧美精品aaaaaa片 | 亚洲国产欧美日韩精品一区二区三区 | 欧美 日韩 人妻 高清 中文 | 中国女人内谢69xxxxxa片 | 亚洲天堂2017无码 | 亚洲国产av美女网站 | 国产午夜视频在线观看 | 无码人妻出轨黑人中文字幕 | 久久这里只有精品视频9 | 无码人妻久久一区二区三区不卡 | 丰满妇女强制高潮18xxxx | 国产成人无码av片在线观看不卡 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 国产精品久久久久无码av色戒 | 亚洲精品一区二区三区四区五区 | 青草青草久热国产精品 | 国产高潮视频在线观看 | 亚洲 高清 成人 动漫 | 一本色道久久综合狠狠躁 | 自拍偷自拍亚洲精品10p | 无码任你躁久久久久久久 | 国产特级毛片aaaaaa高潮流水 | 国产精品无码mv在线观看 | 国产人妻人伦精品 | 麻豆国产丝袜白领秘书在线观看 | 久久综合给合久久狠狠狠97色 | 亚洲成a人片在线观看无码 | 日日鲁鲁鲁夜夜爽爽狠狠 | 精品无人国产偷自产在线 | av在线亚洲欧洲日产一区二区 | 国产精品免费大片 | 国产亚洲日韩欧美另类第八页 | 精品亚洲韩国一区二区三区 | 免费无码午夜福利片69 | 三级4级全黄60分钟 | 欧美日韩色另类综合 | 欧美人与动性行为视频 | 少妇性荡欲午夜性开放视频剧场 | 性欧美疯狂xxxxbbbb | 国产 浪潮av性色四虎 | 国产口爆吞精在线视频 | 无码福利日韩神码福利片 | 人人澡人摸人人添 | √8天堂资源地址中文在线 | 亚洲欧美色中文字幕在线 | 天天拍夜夜添久久精品大 | 色婷婷香蕉在线一区二区 | 日本一卡2卡3卡四卡精品网站 | 亚洲中文无码av永久不收费 | 人妻体内射精一区二区三四 | 精品无码av一区二区三区 | 国产内射爽爽大片视频社区在线 | 欧美乱妇无乱码大黄a片 | 国产精品久久久久影院嫩草 | 国色天香社区在线视频 | 成人免费视频一区二区 | 亚洲欧美国产精品久久 | 久久伊人色av天堂九九小黄鸭 | 少妇高潮喷潮久久久影院 | 福利一区二区三区视频在线观看 | www一区二区www免费 | 免费网站看v片在线18禁无码 | 丰满人妻一区二区三区免费视频 | а√天堂www在线天堂小说 | 欧美日本免费一区二区三区 | 婷婷丁香五月天综合东京热 | 亚洲精品成a人在线观看 | 国产熟妇另类久久久久 | 欧美 日韩 人妻 高清 中文 | 成 人 免费观看网站 | 亚无码乱人伦一区二区 | 国产又爽又猛又粗的视频a片 | 欧美怡红院免费全部视频 | 日日摸天天摸爽爽狠狠97 | 亚洲自偷精品视频自拍 | 丰满护士巨好爽好大乳 | 美女黄网站人色视频免费国产 | 国产精品99爱免费视频 | 国产精品久久福利网站 | 大地资源中文第3页 | 最近中文2019字幕第二页 | 欧美 丝袜 自拍 制服 另类 | 波多野结衣av在线观看 | 欧美精品一区二区精品久久 | 国产莉萝无码av在线播放 | 国产精品久久精品三级 | 高潮毛片无遮挡高清免费 | 牛和人交xxxx欧美 | 日本免费一区二区三区最新 | 台湾无码一区二区 | 国产av剧情md精品麻豆 | 国精品人妻无码一区二区三区蜜柚 | 无码人妻精品一区二区三区不卡 | 成人精品视频一区二区三区尤物 | 麻豆成人精品国产免费 | 成人aaa片一区国产精品 | 中国女人内谢69xxxxxa片 | 中文字幕乱妇无码av在线 | 精品无码一区二区三区的天堂 | 高潮毛片无遮挡高清免费视频 | 亚洲一区二区三区播放 | 中文精品无码中文字幕无码专区 | 欧美xxxx黑人又粗又长 | 亚洲成av人片在线观看无码不卡 | 少妇太爽了在线观看 | 国产亚洲人成a在线v网站 | 久久亚洲中文字幕无码 | 亚洲精品成人av在线 | 国产精品久久久久久亚洲毛片 | 国产97人人超碰caoprom | 亚洲一区二区三区偷拍女厕 | 欧美丰满熟妇xxxx性ppx人交 | 久热国产vs视频在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲成av人在线观看网址 | 丰满少妇女裸体bbw | 高潮毛片无遮挡高清免费 | 性史性农村dvd毛片 | 亚洲精品一区二区三区在线 | 欧美日韩在线亚洲综合国产人 | 亚洲国产精品成人久久蜜臀 | 动漫av一区二区在线观看 | 东京无码熟妇人妻av在线网址 | 亚洲国产精品美女久久久久 | 亚洲无人区一区二区三区 | 伦伦影院午夜理论片 | 国产精品.xx视频.xxtv | 丝袜足控一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 色 综合 欧美 亚洲 国产 | 一本久久伊人热热精品中文字幕 | 精品国产av色一区二区深夜久久 | 又大又黄又粗又爽的免费视频 | 国产av久久久久精东av | 成人毛片一区二区 | 欧美大屁股xxxxhd黑色 | 国产内射老熟女aaaa | 免费人成网站视频在线观看 | 中文字幕乱码亚洲无线三区 | 久久亚洲a片com人成 | 一本久道久久综合狠狠爱 | 亚洲精品中文字幕久久久久 | 免费看男女做好爽好硬视频 | 国产人妻大战黑人第1集 | 在线播放亚洲第一字幕 | 国产精品久久久久9999小说 | av无码不卡在线观看免费 | 成年美女黄网站色大免费视频 | 亚洲成色在线综合网站 | 草草网站影院白丝内射 | 成人免费视频视频在线观看 免费 | 亚洲啪av永久无码精品放毛片 | 国产亚洲美女精品久久久2020 | 九九在线中文字幕无码 | 成在人线av无码免费 | 日韩欧美中文字幕公布 | 极品尤物被啪到呻吟喷水 | 天天拍夜夜添久久精品大 | 成人影院yy111111在线观看 | 乱人伦人妻中文字幕无码 | 人人妻人人澡人人爽欧美一区 | 曰韩无码二三区中文字幕 | 最新版天堂资源中文官网 | 国产女主播喷水视频在线观看 | 撕开奶罩揉吮奶头视频 | 无码人妻久久一区二区三区不卡 | 亚洲色欲色欲天天天www | 亚洲精品久久久久久一区二区 | 中文字幕无码av波多野吉衣 | 国产精品自产拍在线观看 | а√资源新版在线天堂 | 国产人妖乱国产精品人妖 | 激情综合激情五月俺也去 | 鲁一鲁av2019在线 | 成人欧美一区二区三区 | 久久精品99久久香蕉国产色戒 | 51国偷自产一区二区三区 | 久久人人爽人人人人片 | 午夜性刺激在线视频免费 | 亚洲欧美日韩成人高清在线一区 | 中文字幕无码av激情不卡 | 人妻夜夜爽天天爽三区 | 激情综合激情五月俺也去 | 久久亚洲日韩精品一区二区三区 | 亚洲国产高清在线观看视频 | 欧美性猛交内射兽交老熟妇 | 精品国产一区二区三区av 性色 | 九月婷婷人人澡人人添人人爽 | 无码一区二区三区在线观看 | 人人妻人人澡人人爽欧美一区九九 | 极品尤物被啪到呻吟喷水 | 国产亲子乱弄免费视频 | 动漫av一区二区在线观看 | 好爽又高潮了毛片免费下载 | 极品尤物被啪到呻吟喷水 | 日韩无码专区 | 久久国产自偷自偷免费一区调 | 亚洲熟妇色xxxxx欧美老妇 | 精品国产一区二区三区四区 | 女人被男人躁得好爽免费视频 | 欧美一区二区三区视频在线观看 | 白嫩日本少妇做爰 | 丰满妇女强制高潮18xxxx | 成在人线av无码免费 | 狠狠综合久久久久综合网 | 亚洲va欧美va天堂v国产综合 | 又紧又大又爽精品一区二区 | 久久久久人妻一区精品色欧美 | 无码av岛国片在线播放 | 国产精品18久久久久久麻辣 | 人人妻人人澡人人爽人人精品浪潮 | 免费乱码人妻系列无码专区 | 亚洲国产av精品一区二区蜜芽 | 国产做国产爱免费视频 | 成人性做爰aaa片免费看 | 狠狠色色综合网站 | 欧美freesex黑人又粗又大 | 骚片av蜜桃精品一区 | 377p欧洲日本亚洲大胆 | 日韩人妻系列无码专区 | 午夜福利试看120秒体验区 | 天海翼激烈高潮到腰振不止 | 内射老妇bbwx0c0ck | 四虎永久在线精品免费网址 | 蜜臀aⅴ国产精品久久久国产老师 | 久久精品国产99精品亚洲 | 国产三级精品三级男人的天堂 | 国产av无码专区亚洲a∨毛片 | 久久精品成人欧美大片 | 男人扒开女人内裤强吻桶进去 | 国产麻豆精品一区二区三区v视界 | 国产精品久久久 | 亚洲欧美日韩综合久久久 | 久青草影院在线观看国产 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲の无码国产の无码影院 | 国产成人精品一区二区在线小狼 | 好爽又高潮了毛片免费下载 | 亚洲国产日韩a在线播放 | 男女超爽视频免费播放 | 亚洲色成人中文字幕网站 | 亚洲色在线无码国产精品不卡 | 国产人妻大战黑人第1集 | 国产成人无码av一区二区 | 99久久婷婷国产综合精品青草免费 | 无码午夜成人1000部免费视频 | 久久精品人妻少妇一区二区三区 | 欧美精品在线观看 | 狂野欧美激情性xxxx | 亚洲一区二区三区含羞草 | 久久精品国产99精品亚洲 | 国产人妻精品午夜福利免费 | 小sao货水好多真紧h无码视频 | 欧美日韩在线亚洲综合国产人 | 亚拍精品一区二区三区探花 | 图片区 小说区 区 亚洲五月 | 久在线观看福利视频 | 无码国产激情在线观看 | 夜精品a片一区二区三区无码白浆 | 日本一本二本三区免费 | 娇妻被黑人粗大高潮白浆 | 国产乱码精品一品二品 | 亚洲日韩av一区二区三区中文 | 亚洲精品久久久久中文第一幕 | 国产黑色丝袜在线播放 | 亚洲第一网站男人都懂 | 精品厕所偷拍各类美女tp嘘嘘 | 午夜精品一区二区三区在线观看 | 亚洲欧洲无卡二区视頻 | 天堂在线观看www | 成人免费视频一区二区 | 麻豆国产人妻欲求不满谁演的 | 2019午夜福利不卡片在线 | 国产在线aaa片一区二区99 | 久久久久免费看成人影片 | 黑人玩弄人妻中文在线 | 国产精品亚洲综合色区韩国 | 亚洲熟妇自偷自拍另类 | 人妻少妇精品久久 | 久久国产自偷自偷免费一区调 | 精品乱子伦一区二区三区 | 日日夜夜撸啊撸 | 女高中生第一次破苞av | 极品尤物被啪到呻吟喷水 | 又大又紧又粉嫩18p少妇 | 图片区 小说区 区 亚洲五月 | 双乳奶水饱满少妇呻吟 | 国产在线精品一区二区三区直播 | 国产无遮挡吃胸膜奶免费看 | 免费观看的无遮挡av | 亚洲成在人网站无码天堂 | v一区无码内射国产 | 国产无av码在线观看 | 午夜精品一区二区三区在线观看 | 国产真人无遮挡作爱免费视频 | 久久精品国产精品国产精品污 | 丝袜人妻一区二区三区 | 久久久久免费看成人影片 | 色一情一乱一伦一区二区三欧美 | 久久久中文字幕日本无吗 | 波多野结衣aⅴ在线 | 国产美女极度色诱视频www | 人妻少妇被猛烈进入中文字幕 | 色欲综合久久中文字幕网 | 成人综合网亚洲伊人 | 国产精品亚洲а∨无码播放麻豆 | 国产极品视觉盛宴 | 精品国精品国产自在久国产87 | 中文字幕无码av激情不卡 | 日韩精品a片一区二区三区妖精 | 99国产精品白浆在线观看免费 | 亚洲精品成a人在线观看 | 久青草影院在线观看国产 | 日本欧美一区二区三区乱码 | 亚洲中文字幕无码中文字在线 | 国产猛烈高潮尖叫视频免费 | 亚洲精品午夜国产va久久成人 | 久久久婷婷五月亚洲97号色 | 国产精品久久久久影院嫩草 | 免费观看又污又黄的网站 | 亚洲熟妇色xxxxx欧美老妇y | 成人无码影片精品久久久 | 日韩精品a片一区二区三区妖精 | 国产精品igao视频网 | 一本色道久久综合亚洲精品不卡 | 国产97在线 | 亚洲 | 无码乱肉视频免费大全合集 | 久久久精品欧美一区二区免费 | 国产在线精品一区二区三区直播 | 日韩视频 中文字幕 视频一区 | 亚洲日韩一区二区三区 | 5858s亚洲色大成网站www | 国产精品无码一区二区三区不卡 | 亚洲国产精品久久久久久 | 国产精华av午夜在线观看 | 中国女人内谢69xxxxxa片 | 色诱久久久久综合网ywww | 中文字幕无线码免费人妻 | 国内少妇偷人精品视频 | 初尝人妻少妇中文字幕 | 人妻人人添人妻人人爱 | 丰满人妻精品国产99aⅴ | 黑森林福利视频导航 | 久久精品无码一区二区三区 | 欧美自拍另类欧美综合图片区 | 亚洲精品一区二区三区四区五区 | 女人被爽到呻吟gif动态图视看 | 精品亚洲成av人在线观看 | 乱中年女人伦av三区 | 日日橹狠狠爱欧美视频 | 国产激情综合五月久久 | 国产亚洲tv在线观看 | 丝袜 中出 制服 人妻 美腿 | 青青草原综合久久大伊人精品 | 免费无码一区二区三区蜜桃大 | 色综合天天综合狠狠爱 | 中文字幕无码日韩欧毛 | 国产午夜福利100集发布 | 鲁大师影院在线观看 | 国产熟妇高潮叫床视频播放 | 亚洲成av人影院在线观看 | 女人高潮内射99精品 | 熟妇人妻中文av无码 | 免费人成在线视频无码 | 亚洲精品国产第一综合99久久 | 1000部啪啪未满十八勿入下载 | 欧美性猛交内射兽交老熟妇 | 99精品无人区乱码1区2区3区 | 精品久久久久久人妻无码中文字幕 | 国精产品一品二品国精品69xx | 国产av剧情md精品麻豆 | 国产精品久久久久9999小说 | 久久国产自偷自偷免费一区调 | 亚洲理论电影在线观看 | 久久久久免费看成人影片 | 精品久久久久久人妻无码中文字幕 | 国产无套内射久久久国产 | 日本精品高清一区二区 | 国产肉丝袜在线观看 | 欧美肥老太牲交大战 | 亚洲一区二区三区国产精华液 | 午夜性刺激在线视频免费 | 国产精品无码久久av | 亚洲伊人久久精品影院 | 无套内射视频囯产 | 亚洲午夜福利在线观看 | 乱码av麻豆丝袜熟女系列 | 欧美三级a做爰在线观看 | 曰韩无码二三区中文字幕 | 一本久久伊人热热精品中文字幕 | 国产香蕉尹人视频在线 | 在线成人www免费观看视频 | 99久久人妻精品免费二区 | 清纯唯美经典一区二区 | 亚洲一区二区三区偷拍女厕 | 激情内射亚州一区二区三区爱妻 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产成人无码a区在线观看视频app | 在线看片无码永久免费视频 | 成人毛片一区二区 | 色综合久久久无码中文字幕 | 国产精品99爱免费视频 | 国产精品人人爽人人做我的可爱 | 日日碰狠狠丁香久燥 | 性啪啪chinese东北女人 | 国产精品爱久久久久久久 | 一本久道久久综合狠狠爱 | 色一情一乱一伦一区二区三欧美 | 无码国产乱人伦偷精品视频 | 亚洲精品一区二区三区婷婷月 | 国产欧美熟妇另类久久久 | 国内老熟妇对白xxxxhd | 一本色道婷婷久久欧美 | 中文字幕人成乱码熟女app | 图片区 小说区 区 亚洲五月 | 亚欧洲精品在线视频免费观看 | 2019nv天堂香蕉在线观看 | 亚洲中文字幕在线观看 | 亚洲国产成人av在线观看 | 无码人妻精品一区二区三区下载 | 国产精品亚洲一区二区三区喷水 | 色一情一乱一伦一区二区三欧美 | 激情五月综合色婷婷一区二区 | 欧美日本免费一区二区三区 | 国产精品亚洲五月天高清 | 精品国产乱码久久久久乱码 | 麻豆国产丝袜白领秘书在线观看 | 国产无av码在线观看 | 亚洲国产精品成人久久蜜臀 | 无码人妻丰满熟妇区毛片18 | 在线播放无码字幕亚洲 | 亚洲乱亚洲乱妇50p | 秋霞成人午夜鲁丝一区二区三区 | 亚洲人成影院在线无码按摩店 | 疯狂三人交性欧美 | 色一情一乱一伦一区二区三欧美 | 中文字幕无码日韩专区 | 亚洲日韩精品欧美一区二区 | 人妻插b视频一区二区三区 | 久久久精品国产sm最大网站 | 午夜精品久久久久久久 | 婷婷综合久久中文字幕蜜桃三电影 | 久久久久成人精品免费播放动漫 | 色综合久久久久综合一本到桃花网 | 亚洲综合伊人久久大杳蕉 | 国产网红无码精品视频 | 国产av剧情md精品麻豆 | 搡女人真爽免费视频大全 | 六十路熟妇乱子伦 | 亚洲国产日韩a在线播放 | 精品一区二区不卡无码av | 久久无码中文字幕免费影院蜜桃 | 国产成人精品优优av | 精品久久8x国产免费观看 | 午夜肉伦伦影院 | 久久精品人人做人人综合试看 | 欧美性生交xxxxx久久久 | 一本久久伊人热热精品中文字幕 | 亚洲成av人综合在线观看 | 中文字幕av伊人av无码av | 永久免费观看美女裸体的网站 | 色窝窝无码一区二区三区色欲 | 永久免费精品精品永久-夜色 | 国产成人无码专区 | 国产精品久免费的黄网站 | 久久精品国产亚洲精品 | 狂野欧美性猛xxxx乱大交 | 国产精品人人妻人人爽 | 国内丰满熟女出轨videos | 国产av无码专区亚洲a∨毛片 | 无码国模国产在线观看 | 久久精品一区二区三区四区 | 国产农村妇女高潮大叫 | 色五月丁香五月综合五月 | 2019nv天堂香蕉在线观看 | 久久久精品456亚洲影院 | 女高中生第一次破苞av | 理论片87福利理论电影 | 亚洲人成人无码网www国产 | 女人被爽到呻吟gif动态图视看 | 国产国产精品人在线视 | 青草视频在线播放 | 欧美 亚洲 国产 另类 | 国产真实乱对白精彩久久 | 双乳奶水饱满少妇呻吟 | 亚洲无人区午夜福利码高清完整版 | 思思久久99热只有频精品66 | 国色天香社区在线视频 | 欧美性生交活xxxxxdddd | 日本精品久久久久中文字幕 | 亚洲色无码一区二区三区 | 欧美第一黄网免费网站 | 内射后入在线观看一区 | 熟妇激情内射com | 日日碰狠狠躁久久躁蜜桃 | 玩弄中年熟妇正在播放 | 国产av久久久久精东av | 久久久无码中文字幕久... | 精品人人妻人人澡人人爽人人 | 成人免费视频视频在线观看 免费 | 国产乱人伦av在线无码 | 秋霞特色aa大片 | 人人澡人摸人人添 | 狠狠躁日日躁夜夜躁2020 | 国产精品高潮呻吟av久久 | 人妻天天爽夜夜爽一区二区 | 国产精品香蕉在线观看 | 国产办公室秘书无码精品99 | 国产一区二区三区日韩精品 | 色婷婷久久一区二区三区麻豆 | 无码av免费一区二区三区试看 | 亚洲一区二区三区香蕉 | 99久久精品午夜一区二区 | 无码人妻久久一区二区三区不卡 | 国产精品欧美成人 | 牲欲强的熟妇农村老妇女 | 日产精品高潮呻吟av久久 | а√资源新版在线天堂 | 久久综合色之久久综合 | 97se亚洲精品一区 | 国产午夜亚洲精品不卡 | 久久人人爽人人爽人人片ⅴ | 欧美人与牲动交xxxx | 国产精品久久久久影院嫩草 | 久久国产精品精品国产色婷婷 | 国内综合精品午夜久久资源 | 天堂无码人妻精品一区二区三区 | 亚洲色欲久久久综合网东京热 | 俺去俺来也在线www色官网 | 久久精品一区二区三区四区 | 一个人看的www免费视频在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 久青草影院在线观看国产 | a片在线免费观看 | 欧美猛少妇色xxxxx | 国内精品一区二区三区不卡 | 少妇太爽了在线观看 | 国产亚av手机在线观看 | 18禁黄网站男男禁片免费观看 | 久久综合久久自在自线精品自 | 东京无码熟妇人妻av在线网址 | 欧美激情一区二区三区成人 | 日韩av无码一区二区三区 | 亚洲中文字幕在线无码一区二区 | 强伦人妻一区二区三区视频18 | 黑人粗大猛烈进出高潮视频 | 97久久超碰中文字幕 | 精品人人妻人人澡人人爽人人 | 中文字幕无码热在线视频 | 久久久久se色偷偷亚洲精品av | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品手机免费 | 奇米影视888欧美在线观看 | 国产乱码精品一品二品 | 国产精品-区区久久久狼 | 国产农村乱对白刺激视频 | 大屁股大乳丰满人妻 | 久久久精品国产sm最大网站 | 欧美激情一区二区三区成人 | 日本免费一区二区三区最新 | 天天爽夜夜爽夜夜爽 | 曰本女人与公拘交酡免费视频 | 伊人久久婷婷五月综合97色 | 欧洲极品少妇 | 波多野结衣乳巨码无在线观看 | 蜜桃无码一区二区三区 | 人人超人人超碰超国产 | 人人妻人人澡人人爽人人精品 | 天天拍夜夜添久久精品 | 牲欲强的熟妇农村老妇女 | 国产亚洲精品久久久久久久 | 一本精品99久久精品77 | 亚洲欧美色中文字幕在线 | 丰满护士巨好爽好大乳 | 国产国产精品人在线视 | 久久久久久久女国产乱让韩 | 熟女少妇在线视频播放 | 亚洲国产精品久久久久久 | 欧美喷潮久久久xxxxx | 无码av中文字幕免费放 | 图片小说视频一区二区 | 男女爱爱好爽视频免费看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 人人超人人超碰超国产 | 99精品久久毛片a片 | 国产成人精品一区二区在线小狼 | 欧美日韩色另类综合 | 麻花豆传媒剧国产免费mv在线 | 色五月丁香五月综合五月 | 99久久人妻精品免费一区 | 国内精品久久久久久中文字幕 | 国内精品久久毛片一区二区 | 国产内射老熟女aaaa | 国产真实乱对白精彩久久 | 无码成人精品区在线观看 | 中文字幕精品av一区二区五区 | 一区二区三区高清视频一 | 色综合久久88色综合天天 | 国产明星裸体无码xxxx视频 | 国产乱码精品一品二品 | 国产午夜无码精品免费看 | 色五月五月丁香亚洲综合网 | 人妻aⅴ无码一区二区三区 | 高清不卡一区二区三区 | 荫蒂被男人添的好舒服爽免费视频 | 久久久久久久女国产乱让韩 | 亚洲无人区一区二区三区 | 成熟妇人a片免费看网站 | 免费视频欧美无人区码 | 99国产欧美久久久精品 | 人人妻人人澡人人爽欧美一区 | 无码人妻黑人中文字幕 | 人人妻人人藻人人爽欧美一区 | 狠狠色欧美亚洲狠狠色www | 四虎国产精品免费久久 | 女人和拘做爰正片视频 | 国内精品人妻无码久久久影院 | 无套内谢的新婚少妇国语播放 | 无套内谢老熟女 | 高潮喷水的毛片 | 亚洲色在线无码国产精品不卡 | 国产香蕉97碰碰久久人人 | 波多野42部无码喷潮在线 | 波多野结衣av在线观看 | 亚洲va欧美va天堂v国产综合 | 亚洲国产精品久久久久久 | 欧美激情一区二区三区成人 | 欧美人妻一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 77777熟女视频在线观看 а天堂中文在线官网 | 中文字幕人妻无码一区二区三区 | 国产精品久久久久久久9999 | 伊人久久大香线蕉亚洲 | 国产亚洲精品久久久久久 | 国产乱人伦偷精品视频 | 中文字幕无码免费久久9一区9 | 欧美 丝袜 自拍 制服 另类 | 双乳奶水饱满少妇呻吟 | 波多野结衣aⅴ在线 | 又湿又紧又大又爽a视频国产 | 女人被爽到呻吟gif动态图视看 | 中文字幕无码免费久久9一区9 | 乱人伦人妻中文字幕无码久久网 | 夜夜躁日日躁狠狠久久av | 娇妻被黑人粗大高潮白浆 | 久久久精品人妻久久影视 | 亚洲成av人片天堂网无码】 | 免费网站看v片在线18禁无码 | 色偷偷人人澡人人爽人人模 | 亚洲日韩一区二区 | 国内精品久久毛片一区二区 | 成人无码视频在线观看网站 | 国内丰满熟女出轨videos | 亚洲精品国偷拍自产在线麻豆 | 日韩精品a片一区二区三区妖精 | 亚洲午夜久久久影院 | 亚洲人亚洲人成电影网站色 | 亚洲日本一区二区三区在线 | 午夜精品久久久内射近拍高清 | 亚洲综合无码一区二区三区 | 中文字幕人妻无码一夲道 | 国产黑色丝袜在线播放 | 老司机亚洲精品影院 | 美女极度色诱视频国产 | av无码电影一区二区三区 | 亚洲啪av永久无码精品放毛片 | 中文字幕 亚洲精品 第1页 | 人妻无码αv中文字幕久久琪琪布 | 1000部夫妻午夜免费 | 少妇性l交大片欧洲热妇乱xxx | 2020最新国产自产精品 | 欧美人与动性行为视频 | 精品国产一区二区三区四区在线看 | 亚洲成av人片天堂网无码】 | 少妇一晚三次一区二区三区 | 国产熟妇高潮叫床视频播放 | 无码人妻少妇伦在线电影 | 色综合久久久无码中文字幕 | 欧美人与禽猛交狂配 | 日韩亚洲欧美中文高清在线 | 欧美亚洲日韩国产人成在线播放 | 中文字幕 亚洲精品 第1页 | 老熟女乱子伦 | 俺去俺来也www色官网 | 日日摸日日碰夜夜爽av | 亚洲另类伦春色综合小说 | 日本xxxx色视频在线观看免费 | 蜜桃av抽搐高潮一区二区 | 激情爆乳一区二区三区 | 久久久av男人的天堂 | 国产亚洲欧美在线专区 | 久久天天躁夜夜躁狠狠 | 日韩人妻系列无码专区 | 亚洲精品www久久久 | 偷窥日本少妇撒尿chinese | 国产国产精品人在线视 | 国产激情综合五月久久 | 伊人色综合久久天天小片 | 免费中文字幕日韩欧美 | 麻豆国产人妻欲求不满谁演的 | 亚洲日韩乱码中文无码蜜桃臀网站 | 在教室伦流澡到高潮hnp视频 | 久久久精品人妻久久影视 | 亚洲熟妇自偷自拍另类 | 亚洲精品国产品国语在线观看 | 欧美黑人性暴力猛交喷水 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 中文精品久久久久人妻不卡 | 久久精品视频在线看15 | 无码免费一区二区三区 | 久久久久久a亚洲欧洲av冫 | 领导边摸边吃奶边做爽在线观看 | 国产明星裸体无码xxxx视频 | 一本加勒比波多野结衣 | 国产精品理论片在线观看 | 成人动漫在线观看 | 亚洲国产精品无码久久久久高潮 | 亚洲一区二区三区无码久久 | 亚洲性无码av中文字幕 | 女人被爽到呻吟gif动态图视看 | 久久国产36精品色熟妇 | 亚洲乱亚洲乱妇50p | 激情国产av做激情国产爱 | 初尝人妻少妇中文字幕 | 一本久久伊人热热精品中文字幕 | 国产一区二区三区四区五区加勒比 | 久久久久se色偷偷亚洲精品av | 成人无码影片精品久久久 | 中文字幕无码日韩欧毛 | 精品无码一区二区三区爱欲 | 国产成人亚洲综合无码 | 国产va免费精品观看 | 麻豆蜜桃av蜜臀av色欲av | 久久久久免费看成人影片 | 国产亚洲人成a在线v网站 | 精品偷自拍另类在线观看 | 久久五月精品中文字幕 | 亚洲日韩精品欧美一区二区 | 在线观看国产一区二区三区 | 在线a亚洲视频播放在线观看 | 高潮毛片无遮挡高清免费 | 成 人 网 站国产免费观看 | 中文字幕日韩精品一区二区三区 | 天天综合网天天综合色 | 少妇无套内谢久久久久 | 精品国产麻豆免费人成网站 | 99久久婷婷国产综合精品青草免费 | 国产精品国产自线拍免费软件 | 欧美阿v高清资源不卡在线播放 | 久久无码中文字幕免费影院蜜桃 | 欧美 日韩 人妻 高清 中文 | 成 人 网 站国产免费观看 | 无码人妻久久一区二区三区不卡 | 精品国产青草久久久久福利 | 1000部啪啪未满十八勿入下载 | 亚洲成av人片天堂网无码】 | 久久久久久久人妻无码中文字幕爆 | 性欧美大战久久久久久久 | 国产午夜视频在线观看 | 真人与拘做受免费视频一 | 丝袜人妻一区二区三区 | 成人亚洲精品久久久久 | 久久综合香蕉国产蜜臀av | 精品久久久无码中文字幕 | 免费无码一区二区三区蜜桃大 | 国产乱人无码伦av在线a | 久久精品99久久香蕉国产色戒 | 日日碰狠狠躁久久躁蜜桃 | 欧美性黑人极品hd | 男女性色大片免费网站 | 亚洲第一无码av无码专区 | 一本色道婷婷久久欧美 | 国产suv精品一区二区五 | 欧美国产日韩亚洲中文 | 精品无码一区二区三区的天堂 | 日韩人妻系列无码专区 | 欧美人与动性行为视频 | 欧美日韩精品 | 日本一卡二卡不卡视频查询 | 亚洲精品国产精品乱码不卡 | 一本色道久久综合亚洲精品不卡 | 波多野结衣av在线观看 | 免费无码一区二区三区蜜桃大 | 久久天天躁夜夜躁狠狠 | 亚洲国产日韩a在线播放 | 成在人线av无码免观看麻豆 | 性做久久久久久久久 | 亚洲国产精品毛片av不卡在线 | 亚洲 欧美 激情 小说 另类 | 国产一区二区三区精品视频 | 网友自拍区视频精品 | 国产艳妇av在线观看果冻传媒 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲人成人无码网www国产 | 麻豆av传媒蜜桃天美传媒 | 伊人久久婷婷五月综合97色 | 精品无码国产一区二区三区av | 日韩av无码一区二区三区不卡 | 波多野结衣av一区二区全免费观看 | 亚洲成av人片天堂网无码】 | 国产精品无码mv在线观看 | 日本乱人伦片中文三区 | 久久人人爽人人爽人人片av高清 | 国产精品无码永久免费888 | 亚洲国产精品久久久久久 | 亚洲最大成人网站 | 捆绑白丝粉色jk震动捧喷白浆 | 中文字幕精品av一区二区五区 | 蜜桃无码一区二区三区 | 国产香蕉尹人视频在线 | 国产成人人人97超碰超爽8 | 色狠狠av一区二区三区 | 国产精品久久精品三级 | 正在播放东北夫妻内射 | 日韩欧美群交p片內射中文 | 日韩欧美群交p片內射中文 | 亚洲日本va午夜在线电影 | 日本精品人妻无码77777 天堂一区人妻无码 | 四虎国产精品一区二区 | 久久久久亚洲精品男人的天堂 | 丁香花在线影院观看在线播放 | 任你躁在线精品免费 | 国产美女精品一区二区三区 | 国产成人综合色在线观看网站 | 国产成人一区二区三区在线观看 | 蜜桃臀无码内射一区二区三区 | 人妻无码αv中文字幕久久琪琪布 | 乌克兰少妇性做爰 | 国产激情综合五月久久 | 中文无码伦av中文字幕 | 性做久久久久久久久 | 蜜臀av在线播放 久久综合激激的五月天 | 国产尤物精品视频 | 少妇愉情理伦片bd | 精品国产乱码久久久久乱码 | 99久久婷婷国产综合精品青草免费 | 1000部夫妻午夜免费 | 精品欧洲av无码一区二区三区 | 麻豆成人精品国产免费 | 欧美兽交xxxx×视频 | 久久精品人人做人人综合 | 久久久久se色偷偷亚洲精品av | 强伦人妻一区二区三区视频18 | aⅴ亚洲 日韩 色 图网站 播放 | 国产激情综合五月久久 | 色五月丁香五月综合五月 | 亚洲综合久久一区二区 | 在线观看欧美一区二区三区 | 成人影院yy111111在线观看 | 国内丰满熟女出轨videos | 国产成人精品久久亚洲高清不卡 | 欧美怡红院免费全部视频 | 极品尤物被啪到呻吟喷水 | 欧美成人午夜精品久久久 | 亚洲精品成人福利网站 | 黑森林福利视频导航 | 亚洲中文字幕久久无码 | 国产精品成人av在线观看 | 国产明星裸体无码xxxx视频 | 亚洲色www成人永久网址 | 天天摸天天透天天添 | 99er热精品视频 | 在线观看欧美一区二区三区 | 国产成人精品三级麻豆 | 精品 日韩 国产 欧美 视频 | 日韩精品无码一区二区中文字幕 | 波多野结衣av一区二区全免费观看 | 午夜福利电影 | 国精产品一品二品国精品69xx | 成人精品视频一区二区三区尤物 | 欧美丰满熟妇xxxx性ppx人交 | 98国产精品综合一区二区三区 | 久久精品人人做人人综合试看 | 131美女爱做视频 | 中文精品无码中文字幕无码专区 | 午夜精品一区二区三区的区别 | 中文字幕乱码人妻无码久久 | 亚洲精品一区二区三区四区五区 | 男人和女人高潮免费网站 | 色情久久久av熟女人妻网站 | 中文字幕无码人妻少妇免费 | 国产精品久久国产三级国 | 欧美性黑人极品hd | 无码国产激情在线观看 | 天海翼激烈高潮到腰振不止 | 国产av一区二区三区最新精品 | 午夜肉伦伦影院 | 亚洲色欲色欲天天天www | 日本一区二区三区免费播放 | 人妻中文无码久热丝袜 | 中文字幕中文有码在线 | 波多野结衣乳巨码无在线观看 | 日本又色又爽又黄的a片18禁 | 中文字幕中文有码在线 | 露脸叫床粗话东北少妇 | 国产精品久久久久影院嫩草 | 中文字幕av伊人av无码av | 少妇邻居内射在线 | 无套内谢老熟女 | 久久视频在线观看精品 | 俺去俺来也在线www色官网 | 18禁黄网站男男禁片免费观看 | 99久久人妻精品免费一区 | 亚洲日韩一区二区三区 | 人妻无码αv中文字幕久久琪琪布 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 免费视频欧美无人区码 | 国产精品无码久久av | 中文字幕无线码 | 内射白嫩少妇超碰 | 撕开奶罩揉吮奶头视频 | 高清不卡一区二区三区 | 亚洲精品一区二区三区婷婷月 | 小sao货水好多真紧h无码视频 | 无码福利日韩神码福利片 | 免费无码肉片在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 国产成人无码午夜视频在线观看 | 亚洲中文字幕在线观看 | 中文毛片无遮挡高清免费 | 国产精品丝袜黑色高跟鞋 | 俺去俺来也在线www色官网 | 欧美色就是色 | 亚洲一区二区三区 | 久久精品无码一区二区三区 | 色五月五月丁香亚洲综合网 | 亚洲日韩一区二区 | 免费无码一区二区三区蜜桃大 | 国产乱人偷精品人妻a片 | 国产xxx69麻豆国语对白 | 亚洲精品一区二区三区四区五区 | 激情综合激情五月俺也去 | 亚洲а∨天堂久久精品2021 | 国产无套粉嫩白浆在线 | 人人妻人人澡人人爽欧美精品 | 精品国产乱码久久久久乱码 | 久久久久久亚洲精品a片成人 | 无码人妻出轨黑人中文字幕 | 在线播放无码字幕亚洲 | 亚洲成a人一区二区三区 | 国产成人av免费观看 | 国产色xx群视频射精 | 亚拍精品一区二区三区探花 | 久久久久99精品国产片 | 妺妺窝人体色www婷婷 | 熟妇人妻中文av无码 | 中文亚洲成a人片在线观看 | 久久久久国色av免费观看性色 | 欧美精品免费观看二区 | 人人妻在人人 | 成在人线av无码免观看麻豆 | 国产亚av手机在线观看 | 国内精品人妻无码久久久影院蜜桃 | 日日碰狠狠丁香久燥 | 激情内射日本一区二区三区 | 日韩av激情在线观看 | 久久久中文字幕日本无吗 | 亚洲一区二区三区在线观看网站 | 亚洲の无码国产の无码影院 | 欧美人与善在线com | 午夜精品久久久久久久 | 中文字幕乱妇无码av在线 | 欧美丰满老熟妇xxxxx性 | 精品久久综合1区2区3区激情 | 领导边摸边吃奶边做爽在线观看 | 免费国产成人高清在线观看网站 | 伊人久久大香线焦av综合影院 | 国产精品亚洲专区无码不卡 | 亚洲经典千人经典日产 | 日本爽爽爽爽爽爽在线观看免 | 好爽又高潮了毛片免费下载 | 国产精华av午夜在线观看 | 国产在线精品一区二区高清不卡 | 99久久久无码国产精品免费 | 波多野结衣av在线观看 | 亚洲中文字幕无码一久久区 | 久久99精品久久久久久 | 国产乱码精品一品二品 | 中文字幕av日韩精品一区二区 | 四虎永久在线精品免费网址 | 国产真实伦对白全集 | 伊人久久大香线蕉午夜 | 亚洲 a v无 码免 费 成 人 a v | 国产精品成人av在线观看 | 国产综合色产在线精品 | 亚洲精品成a人在线观看 | 无遮挡啪啪摇乳动态图 | 国产在线aaa片一区二区99 | 欧美精品一区二区精品久久 | 女人被爽到呻吟gif动态图视看 | 色狠狠av一区二区三区 | 高潮毛片无遮挡高清免费视频 | 熟妇人妻无乱码中文字幕 | 国产亚洲精品久久久久久国模美 | 波多野结衣乳巨码无在线观看 | 久久综合九色综合欧美狠狠 | 国产另类ts人妖一区二区 | 日本一区二区三区免费高清 | 天天摸天天碰天天添 | 日本又色又爽又黄的a片18禁 | 亚洲综合久久一区二区 | 东京热一精品无码av | 欧美丰满熟妇xxxx | 亚洲成av人片天堂网无码】 | 国产人妻精品午夜福利免费 | 国产精品久久久 | 99国产精品白浆在线观看免费 | 丝袜人妻一区二区三区 | 欧美人与善在线com | 色老头在线一区二区三区 | 蜜桃臀无码内射一区二区三区 | 中文字幕无码日韩欧毛 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品久久久久9999小说 | 亚洲熟悉妇女xxx妇女av | 亚洲成a人片在线观看日本 | 国产欧美亚洲精品a | 色婷婷久久一区二区三区麻豆 | 樱花草在线播放免费中文 | 亚洲人交乣女bbw | 亚洲人成人无码网www国产 | 中文字幕色婷婷在线视频 | 免费无码一区二区三区蜜桃大 | 日韩欧美中文字幕公布 | 国产av无码专区亚洲awww | 两性色午夜视频免费播放 | 国产凸凹视频一区二区 | 帮老师解开蕾丝奶罩吸乳网站 | 中文字幕人成乱码熟女app | 精品无码成人片一区二区98 | 亚洲欧美精品aaaaaa片 | 又大又硬又爽免费视频 | 在线播放亚洲第一字幕 | 亚洲爆乳精品无码一区二区三区 | 福利一区二区三区视频在线观看 | 久久精品女人天堂av免费观看 | 青青久在线视频免费观看 | 国产凸凹视频一区二区 | 无码人妻出轨黑人中文字幕 | 三上悠亚人妻中文字幕在线 | 中文字幕无码日韩专区 | 东京一本一道一二三区 | 精品午夜福利在线观看 | 久久综合网欧美色妞网 | 亚洲欧美精品aaaaaa片 | 免费国产成人高清在线观看网站 | 又大又硬又黄的免费视频 | √天堂资源地址中文在线 | 中文字幕无码免费久久9一区9 | 曰本女人与公拘交酡免费视频 | 欧美日韩一区二区三区自拍 | 亚洲の无码国产の无码步美 | 装睡被陌生人摸出水好爽 | 一个人免费观看的www视频 | 国产精品怡红院永久免费 | 国产精品无码永久免费888 | 特级做a爰片毛片免费69 | 人人爽人人爽人人片av亚洲 | 在线播放无码字幕亚洲 | 欧美精品无码一区二区三区 | 中文字幕乱码人妻二区三区 | 久久久久国色av免费观看性色 | 沈阳熟女露脸对白视频 | 国产成人无码av片在线观看不卡 | 动漫av网站免费观看 | 国产真实伦对白全集 | 熟妇激情内射com | 精品国产青草久久久久福利 | 久久精品国产日本波多野结衣 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 无码精品人妻一区二区三区av | 无码av最新清无码专区吞精 | 妺妺窝人体色www在线小说 | 久久久久亚洲精品中文字幕 | 99re在线播放 | 国产激情艳情在线看视频 | 精品一区二区不卡无码av | 成人性做爰aaa片免费看 | 国产精品永久免费视频 | 在线亚洲高清揄拍自拍一品区 | 亚洲国产精华液网站w | 中文字幕无码日韩专区 | 人妻少妇被猛烈进入中文字幕 | 国产激情无码一区二区app | 久久久精品456亚洲影院 | 日本大乳高潮视频在线观看 |