日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

matplotlib xticks 基于 旋转_数据可视化之 matplotlib 绘图篇

發(fā)布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matplotlib xticks 基于 旋转_数据可视化之 matplotlib 绘图篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文轉(zhuǎn)載于 SegmentFault 社區(qū)

作者:mhxin


引言

??首先來看幾個簡單的圖表, 下面 4 段不同的 matplotlib 繪圖代碼最終的結(jié)果是一樣的,繪制的圖形如下圖所示。 a = np.linspace(-5, 5, 100)
b = np.sin(a)
c = np.cos(a)

# -------------------------------------- #
# ---------------First way-------------- #
fig, ax = plt.subplots()
ax.set_title('Sin-Cos')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.plot(a, b, c='r')
ax.plot(a, c, c='g')
ax.legend(['a', 'b'])
fig.show()


# -------------------------------------- #
# ---------------Second way-------------- #
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('Sin-Cos')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.plot(a, b, c='r')
ax.plot(a, c, c='g')
ax.legend(['a', 'b'])
fig.show()


# -------------------------------------- #
# ---------------Third way-------------- #
plt.figure()
plt.title('Sin-Cos')
plt.xlabel('X')
plt.ylabel('Y')
plt.plot(a, b, c='r')
plt.plot(a, c, c='g')
plt.legend(['a', 'b'])
plt.show()


# -------------------------------------- #
# ---------------Fourth way------------- #
plt.subplot(111)
plt.title('Sin-Cos')
plt.xlabel('X')
plt.ylabel('Y')
plt.plot(a, b, c='r')
plt.plot(a, c, c='g')
plt.legend(['a', 'b'])
plt.show()在以上的 4 種實現(xiàn)方式中,可能大多數(shù)都會使用后面兩種,即直接使用 plt.plot() 進(jìn)行繪制,我剛開始也一樣,它看起來簡單,用起來也很方便。但當(dāng)你逐漸習(xí)慣使用默認(rèn)的方式來進(jìn)行繪圖時,慢慢會出現(xiàn)各種的問題,尤其是當(dāng)你需要對圖表使用很多自定義的設(shè)置的時候。默認(rèn)接口隱藏了繪圖過程中的很多細(xì)節(jié),因為不了解其內(nèi)部細(xì)節(jié),所以在繪圖過程中,對一些圖表的設(shè)置方法全靠記憶。
? ?

Matplotlib 中的部件

?好了,說了這么多,我們先來了解 matplotlib 繪圖過程中幾個主要的名稱,如下圖所示:? ??
  • Figure 可以理解為畫板,使用 fig = plt.figure() 會創(chuàng)建一個畫板。
  • Axes可以理解為畫板上的各種圖形,一個圖形就是一個 axes,利用 axes 可以對圖形的各個部分進(jìn)行設(shè)置。比如使用 fig.add_subplot() 會在 fig 上創(chuàng)建一個 axes。
  • Axis 表示一個 Axes 的坐標(biāo)軸,比如 x 軸,y 軸以及 z 軸等。
接著,介紹圖形(Axes)中的主要部件,了解了每個部件在圖中的位置以及對應(yīng)的功能之后才能按照自己的方式來對圖表進(jìn)行設(shè)置。以上圖中的所有部件,都可以通過 axes 來實現(xiàn)精確的控制,比如需要設(shè)置 x 軸主刻度標(biāo)簽, 即可使用 axes.xaxis.set_ticklabels(['', '']),這種面向?qū)ο蟮目刂品绞?#xff0c;很容易理解和實現(xiàn)。
??

實戰(zhàn)

?基于上面的介紹,我們來繪制一些圖形。

時間序列圖

??直接上代碼:# 導(dǎo)入FontProperties類,該類用于定義字體,包括字體,大小等
from matplotlib.font_manager import FontProperties

# 定義標(biāo)簽字體,字體為Time New Roman
# 也可以通過指定fname(字體文件的路徑)來定義字體
label_font = FontProperties(family='Times New Roman', size=18, weight='bold', style='normal')

# 定義標(biāo)題字體
title_font = FontProperties(family='Times New Roman', size=20, weight='bold', style='normal')

# 定義坐標(biāo)軸刻度字體
ticks_font = FontProperties(family='Times New Roman', size=12, weight='bold', style='normal')

# 定義legend字體
legend_font = FontProperties(family='Times New Roman', size=18, weight='bold', style='normal')

year = np.arange(1985, 2017, 1)
ndvi = np.random.rand(len(year))

# 創(chuàng)建fig和axes
fig, ax = plt.subplots(figsize=(10, 5))


# 取消x方向的格網(wǎng)
# axis.xaxis.grid(False)
# 取消y方向的格網(wǎng)
# axis.yaxis.grid(False)

# 取消所有格網(wǎng)
ax.grid(False)


# 定義標(biāo)題,字體和顏色
# axis.yaxis.label.set_fontproperties(font)
# axis.xaxis.label.set_fontproperties(font)

ax.set_xlabel('Year', fontproperties=label_font, color='black')
ax.set_ylabel('NDVI', fontproperties=label_font, color='black')


# 定義坐標(biāo)軸顯示范圍
ax.set_xlim(1985, 2017)
ax.set_ylim(0, 1)

# 取消圖表的上邊界和右邊界
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# 將圖表的左邊界和下邊界的顏色設(shè)為黑色(默認(rèn)為黑色)
# 顏色可以參考:
# https://matplotlib.org/3.1.3/gallery/color/color_demo.html#sphx-glr-gallery-color-color-demo-py
ax.spines['left'].set_color('black')
ax.spines['bottom'].set_color('black')

# 將圖表的主刻度字體改為指定字體,并設(shè)定刻度不旋轉(zhuǎn),遍歷所有主刻度
for tick in ax.xaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)
tick.set_rotation(0)

for tick in ax.yaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)
tick.set_rotation(0)

# 設(shè)置圖表的主刻度線的位置,x軸在下邊,y軸在左邊
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')

# 設(shè)置顯示的x主刻度
ax.set_xticks(np.arange(1985, 2017, 3))

# 繪制時間序列
ax.plot(year, ndvi)

# 設(shè)置第一條line(這里只有一條)的屬性
ax.lines[0].set_linewidth(2)
ax.lines[0].set_linestyle('-')
ax.lines[0].set_color('black')
ax.lines[0].set_marker('*')
ax.lines[0].set_markeredgecolor('red')

# 設(shè)置圖例
ax.legend(['TS1', ], prop=legend_font, facecolor='white')

#設(shè)置標(biāo)題
ax.set_title('Time Series', fontproperties=title_font, color='black')

plt.show()繪制結(jié)果如下所示:繪制圖表的代碼雖然比較長,但結(jié)構(gòu)比較清楚,結(jié)合前面的部件介紹,了解每一步的含義,相信很容易就能看懂。

帶直方圖的散點圖

??代碼如下:# 定義坐標(biāo)軸刻度字體
ticks_font = FontProperties(family='Times New Roman', size=14, weight='normal', style='normal')

# 定義畫板大小
fig_width = 5

#
space = fig_width / 100


left, bottom, width, height = fig_width / 10, fig_width / 10, fig_width / 2, fig_width / 2
scatter_region = [left, bottom, width, height]
topbar_region = [left, bottom + height + space, width, height/2]
rightbar_region = [left + width + space, bottom, width/2, height]

# 定義畫板
plt.figure(figsize=(fig_width, fig_width))

# 定義Axes用于繪制散點圖
# plt.axes([left, bottom, width, height])
ax_scatter = plt.axes(scatter_region)

# 定義Axes用于繪制x的直方圖
ax_topbar = plt.axes(topbar_region)

# 定義Axes用于繪制y的直方圖
ax_rightbar = plt.axes(rightbar_region)

# ax_rightbar.invert_xaxis()
# ax_topbar.xaxis.set_ticks([])
# ax_rightbar.xaxis.set_ticks_position('bottom')
# ax_rightbar.yaxis.set_ticks([])

# 設(shè)置坐標(biāo)軸屬性, 這里使用set_tick_params(),可以同時設(shè)置坐標(biāo)軸的多個屬性,詳情可以參考:
# https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.tick_params.html#matplotlib.axes.Axes.tick_params
ax_rightbar.yaxis.set_tick_params(bottom=False, labelbottom=False)
ax_rightbar.xaxis.set_tick_params(direction='out', color='black', left=True, labelleft=True)
ax_topbar.yaxis.set_tick_params(direction='out', color='black', left=True, labelleft=True)
ax_topbar.xaxis.set_tick_params(bottom=False, labelbottom=False)


# ax_scatter.xaxis.set_tick_params(direction='out', color='black', labelsize=12)
# ax_scatter.yaxis.set_tick_params(direction='out', color='black', labelsize=12)
# 以上兩行代碼等同于下面一句代碼
ax_scatter.tick_params(direction='out', color='black')

# 設(shè)置坐標(biāo)軸字體
for ax in [ax_topbar, ax_scatter, ax_rightbar]:
for tick in ax.yaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)
for tick in ax.xaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)

# s參數(shù)用于設(shè)置散點大小,c用于設(shè)置cmap
ax_scatter.scatter(x, y, s=np.abs(x / y) * 10, c=np.abs(x * y) * 0.02, alpha=0.6)

ax_topbar.hist(x, bins=np.linspace(np.min(x), np.max(x), 16), color='#2C5784')
ax_rightbar.hist(y, bins=np.linspace(np.min(y), np.max(y), 16), orientation='horizontal', color='#20866C')
plt.show()繪制結(jié)果如下圖所示:

?

帶標(biāo)注的函數(shù)圖像

# 生成數(shù)據(jù)
x = np.linspace(-4, 4, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.exp(x)

from matplotlib.font_manager import FontProperties
label_font = FontProperties(family='Times New Roman', size=18, weight='bold', style='normal')
title_font = FontProperties(family='Times New Roman', size=20, weight='bold', style='normal')
ticks_font = FontProperties(family='Times New Roman', size=12, weight='bold', style='normal')
legend_font = FontProperties(family='Times New Roman', size=18, weight='bold', style='normal')
fig, ax = plt.subplots(figsize=(8, 10), dpi=100, ncols=1, nrows=2)

# 繪制函數(shù)圖像
ax[0].plot(x, y1, color='red')
ax[0].plot(x, y2, color='orange')
ax[1].plot(x, y3, color='blue')
# ax1和ax共享x軸,當(dāng)需要在同一個圖表中顯示比例不同的圖形時使用,比如exp(x)和sin(x)
# ax1 = ax.twinx()


# --------------------------------------- Fig 1 --------------------------------------- #
# 設(shè)置標(biāo)題,坐標(biāo)軸標(biāo)簽
ax[0].set_title(r'$y=sin(x)$', fontproperties=title_font, color='black', pad=10)
# ax[0].set_xlabel(r'$x$', fontproperties=label_font, color='black', ha='right')
# ax[0].set_ylabel(r'$y$', fontproperties=label_font, color='black')
# ax[0].xaxis.set_label_coords(5, 0)
# ax[0].xaxis.set_label_coords(0, 1.5)

# 不顯示右坐標(biāo)軸和上坐標(biāo)軸
ax[0].spines['top'].set_visible(False)
ax[0].spines['right'].set_visible(False)

# 移動左坐標(biāo)軸和底部坐標(biāo)軸到圖形中間位置
ax[0].spines['left'].set_position('center')
ax[0].spines['bottom'].set_position('center')


# 設(shè)置x軸刻度
# ax[0].xaxis.set_ticks_position('left')
# 設(shè)置x軸刻度坐標(biāo)
ax[0].set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
# 設(shè)置x軸刻度標(biāo)簽
ax[0].set_xticklabels([r'$-\pi$', r'$-\frac{\pi}{2}$', r'$0$', r'$\frac{\pi}{2}$', r'$\pi$'])

# 設(shè)置y軸刻度
ax[0].set_yticks([-1, 0, 1])

# 設(shè)置y軸刻度的位置
ax[0].yaxis.set_ticks_position('left')

# ax[0].lines[1].set_linestyle('--')

# annotate函數(shù)的詳細(xì)參數(shù)解釋可以參考:
# https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.annotate.html
"""
annotate(text, xy, xytext, xycoords, textcoords, arrowprops ,*args, **kwargs)
text(string): 需要標(biāo)注的文本
xy(tuple -> (float, float)): 標(biāo)注的點/位置
xytext(tuple -> (float, float)): 放置標(biāo)注文本的位置
textcoords(string): 給定xytext的坐標(biāo)系統(tǒng),可選('offset points', 'offset pixel')
xycoords(string): 給定xy的坐標(biāo)系,默認(rèn)'data',表示使用待標(biāo)注對象的坐標(biāo)系統(tǒng)
fontproperties(FontProperties): 需要標(biāo)注的文本
arrowprops(dict): 設(shè)置標(biāo)注文本和標(biāo)注點之間的連接方式。arrowstyle="->" 表示使用箭頭連接,
connectionstyle="arc3,rad=.6" 表示連接類型為圓弧, 半徑為0.6
"""

ax[0].annotate(r'$Sin(\frac{2\pi}{3}) = \frac{\sqrt{3}}{2}$', xy=(np.pi * 2 / 3, np.sqrt(3)/2), xycoords='data', xytext=(10, 30), \
textcoords='offset points', arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.6"), fontproperties=ticks_font)

# 這里坐標(biāo)軸標(biāo)簽是使用注記來設(shè)置的
ax[0].annotate(r'$X$', xy=(4.4, 0), xycoords='data', color='black', fontproperties=label_font)

ax[0].annotate(r'$Cos(\frac{2\pi}{3}) = -\frac{1}{2}$', xy=(np.pi * 2 / 3, -1/2), xycoords='data', xytext=(-100, -30), \
textcoords='offset points', arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"), fontproperties=ticks_font)

ax[0].annotate(r'$Y$', xy=(-0.3, 1.05), xycoords='data', color='black', fontproperties=label_font)

# 標(biāo)記特定位置
ax[0].scatter([2*np.pi/3, ], [-1/2,], color='orange', s=40)
ax[0].plot([2*np.pi/3, 2*np.pi/3], [0, -1/2], linestyle='--', color='orange')
ax[0].scatter([2*np.pi/3, ], [np.sqrt(3)/2,], color='red', s=40)
ax[0].plot([2*np.pi/3, 2*np.pi/3], [0, np.sqrt(3)/2], linestyle='--', color='red')

# 設(shè)置圖例
ax[0].legend([r'$Sin(x)$', r'$Cos(x)$',], loc='best', prop=legend_font, shadow=False, facecolor='white')

# --------------------------------------- Fig 2 --------------------------------------- #
ax[1].spines['top'].set_visible(False)
ax[1].spines['right'].set_visible(False)

# 統(tǒng)一設(shè)置刻度標(biāo)簽字體
for sub_ax in ax:
for tick in sub_ax.xaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)

for tick in sub_ax.yaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)

ax[1].annotate(r'$X$', xy=(4.4, -0.7), xycoords='data', color='black', fontproperties=label_font)
ax[1].annotate(r'$Y$', xy=(-4.4, 56), xycoords='data', color='black', fontproperties=label_font)

# 填充圖像和坐標(biāo)軸之間的圖形
# 如果要在x方向上的曲線之間填充,可以使用fill_betweenx
ax[1].fill_between(x, y3, 0, color='green')


# 使用tighe_layout可以自動調(diào)整子圖參數(shù),以使子圖適合圖形區(qū)域。
fig.tight_layout()
plt.show()

? ?

熱力圖(Heatmap)

??# Heatmap

from mpl_toolkits.axes_grid1 import make_axes_locatable, axes_size
from matplotlib.font_manager import FontProperties

label_font = FontProperties(family='Times New Roman', size=18, weight='bold', style='normal')
title_font = FontProperties(family='Times New Roman', size=20, weight='bold', style='normal')
ticks_font = FontProperties(family='Times New Roman', size=12, weight='bold', style='normal')
legend_font = FontProperties(family='Times New Roman', size=18, weight='bold', style='normal')

vegetables = ["cucumber", "tomato", "lettuce", "asparagus",
"potato", "wheat", "barley"]
farmers = ["Farmer Joe", "Upland Bros.", "Smith Gardening",
"Agrifun", "Organiculture", "BioGoods Ltd.", "Cornylee Corp."]

harvest = np.array([[0.8, 2.4, 2.5, 3.9, 0.0, 4.0, 0.0],
[2.4, 0.0, 4.0, 1.0, 2.7, 0.0, 0.0],
[1.1, 2.4, 0.8, 4.3, 1.9, 4.4, 0.0],
[0.6, 0.0, 0.3, 0.0, 3.1, 0.0, 0.0],
[0.7, 1.7, 0.6, 2.6, 2.2, 6.2, 0.0],
[1.3, 1.2, 0.0, 0.0, 0.0, 3.2, 5.1],
[0.1, 2.0, 0.0, 1.4, 0.0, 1.9, 6.3]])

fig_size=8
fig, ax = plt.subplots(figsize=(fig_size, fig_size), dpi=100)

# 使用matplotlib3.1.1繪制,會出現(xiàn)heatmap顯示不全的問題
# 這里使用的是matplotlib3.1.0
im = ax.imshow(harvest, cmap=plt.cm.GnBu_r)

ax.set_xticks(np.arange(len(farmers)))
ax.set_yticks(np.arange(len(vegetables)))

# ha -> horizontal align
# va -> vertical align
ax.set_xticklabels(farmers, ha='right', va='bottom', rotation_mode="anchor")
ax.set_yticklabels(vegetables)

for tick in ax.xaxis.get_majorticklabels():
tick.set_rotation(45)
tick.set_fontproperties(ticks_font)


for tick in ax.yaxis.get_majorticklabels():
tick.set_fontproperties(ticks_font)


for i in range(len(vegetables)):
for j in range(len(farmers)):
text = ax.text(j, i, harvest[i, j],
ha="center", va="center", color="w", fontproperties=ticks_font)


# 參數(shù)的設(shè)置我暫時也不太理解,可以參考:
# https://stackoverflow.com/questions/18195758/set-matplotlib-colorbar-size-to-match-graph

# 創(chuàng)建顏色條,colorbar可以理解為子圖,即sub fig
cbar = fig.colorbar(im, orientation='vertical', fraction=0.046, pad=0.04)

# colorbar.ax可以看做是一個fig中的axes,具有axes的所有屬性和方法

# 設(shè)置顏色條的刻度標(biāo)簽
cbar.ax.set_yticklabels(np.arange(0, 7), fontproperties=ticks_font)


# 設(shè)置顏色條坐標(biāo)軸字體
# https://stackoverflow.com/questions/15908371/matplotlib-colorbars-and-its-text-labels
cbar.ax.set_ylabel('Color Bar', fontproperties=title_font, rotation=270, labelpad=16)

# 設(shè)置標(biāo)題字體
ax.set_title("Harvest of local farmers (in tons/year)", fontproperties=title_font, pad=10)
fig.tight_layout()
plt.show()繪制結(jié)果如下所示:


?

總結(jié)

以上的幾種圖形基本上按照了以下步驟進(jìn)行繪制:
  • 定義字體(比如圖表標(biāo)題、坐標(biāo)軸標(biāo)題、刻度數(shù)字以及圖例等)
  • 創(chuàng)建 axes(plt.axes()、plt.subplots()或者fig.add_subplot() )
  • 設(shè)置 fig 的屬性(比如背景顏色等)
  • 使用 axes 設(shè)置軸(Spine)的屬性(包括顯示范圍、顏色、字體以及刻度等)
  • 使用 axes 繪制圖形
  • 使用 axes 設(shè)置線的屬性(比如線型、顏色以及粗細(xì)等等)
  • 使用 axes 設(shè)置標(biāo)題以及圖例
  • 本文主要介紹了 matplotlib 繪圖對象中 fig 和 axes 的差異,可以這樣理解,fig 是畫板,而 axes 是畫板上的圖形,一個 fig 中可以包含多個 axes,而 axes 才是控制繪圖的關(guān)鍵。
    其次通過幾種常用圖形的繪制,介紹了 matplotlib 繪圖過程中大部分的常用操作。以上所有圖形的繪制均使用了同一種方式,即利用 axes 來進(jìn)行繪圖,主要有兩個原因,其一,這樣寫的代碼可讀性比較好,比較容易修改(至少個人認(rèn)為是這樣的)。其二,這種方式可以實現(xiàn)對圖表的任意部件進(jìn)行自定義的修改。我雖然都使用了 axes 來繪圖,并且也推薦使用這種方式來進(jìn)行繪圖。但并不意味著你也要使用這種方式,如果只是繪制一些示意圖,對圖形并沒有太多控制,其實 plt.plot()可能更方便,這也是 matplotlib 默認(rèn)的方式。
    ?

    Reference

    https://matplotlib.org/tutorials/introductory/usage.htmlhttps://matplotlib.org/1.5.1/faq/usage_faq.html#parts-of-a-figurehttps://zhuanlan.zhihu.com/p/93423829https://matplotlib.org/3.1.3https://stackoverflow.com/questions/18195758
    -?END - 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的matplotlib xticks 基于 旋转_数据可视化之 matplotlib 绘图篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲中文字幕久久无码 | 国产成人无码精品 | 精品国产一区二区三区久久久蜜臀 | 国产精品99无码一区二区视频 | 一级免费毛片 | 奶罩不戴乳罩邻居hd播放 | 里番acg★同人里番本子大全 | 日本japanese极品少妇 | 干爹你真棒插曲mv在线观看 | 国产老妇伦国产熟女老妇视频 | 97国产精品视频人人做人人爱 | av日日夜夜 | 久视频在线观看 | 黄色片网站在线免费观看 | 成人免费区一区二区三区 | 久久国产成人精品 | 国产精品高清在线 | 麻豆一区二区99久久久久 | 看看毛片 | 午夜黄色在线 | 国家队动漫免费观看在线观看晨光 | 猛1被调教成公厕尿便失禁网站 | 精品人妻一区二区三区浪潮在线 | 在线观看亚洲a | 日本国产一区 | 天堂资源av | 国产91视频在线 | 香蕉伊人网 | 女人裸体无遮挡 | av影片在线播放 | 中文字字幕在线中文乱码电影 | 性高湖久久久久久久久免费 | 中文久久久久 | 欧美日日日 | 中文字幕国产一区二区 | 一区二区三区在线不卡 | 亚洲天堂中文字幕在线观看 | chinese中国性按摩hd | 九九热精品免费视频 | 97欧美 | 欧美色久 | 性欧美一区二区 | 色天天综合 | 一区二区三区免费网站 | 日韩激情在线 | 婷婷亚洲综合 | 涩色网 | 野花中文免费观看6 | 国产又粗又猛又爽69xx | 黄色网址国产 | 成人欧美一区 | 91黄色看片 | 成人精品视频99在线观看免费 | 国产91色 | 中文字幕日韩一区 | 国产小视频在线看 | 中文字幕日韩三级 | 午夜精品小视频 | 精品国产91久久久久久久妲己 | 中文天堂在线资源 | 午夜写真片福利电影网 | 亚洲精品一区二区三区新线路 | gay男互凵gay男同偷精 | 欧美一级片在线免费观看 | 国产精品不卡在线观看 | 日韩性av| 亚洲小说在线 | 美女久久久久久久久 | 中文精品久久 | а√天堂资源官网在线资源 | h在线免费 | 欧美日韩电影一区二区三区 | 快色在线观看 | 蜜桃视频一区 | 亚洲av不卡一区二区 | 中国性xxx| 欧美亚洲三级 | 午夜秋霞影院 | 极品国产白皙 | 亚洲人午夜射精精品日韩 | a成人在线| av亚州| 国产精品久久久久久免费 | 超碰天天干 | 国产伦精品一区二区三区视频女 | 国产人妖在线视频 | 亚洲国产精品影院 | 51福利视频| 无码一区二区 | 亚洲精选一区二区 | 欧美精品手机在线 | 日本精品一区二区三区在线观看 | 国产99久久久久久免费看 | 国产一卡二| 亚洲国产精品成人 | 五月天色婷婷丁香 | 久久精品免费观看 | 日韩精品一区二区三区电影 | 亚洲人午夜射精精品日韩 |