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

基于R shinydashboard的道路交通可視化案例

大數據 數據可視化
個作品剛剛獲得“中國電科杯”城市數據創新大賽的城市交通專項獎,現在作為案例分享出來供同行交流討論。虛的就不說了,此文只討論技術。

[[197973]]

作品概述

這個作品剛剛獲得“中國電科杯”城市數據創新大賽的城市交通專項獎,現在作為案例分享出來供同行交流討論。虛的就不說了,此文只討論技術。

先上圖:

實時道路交通可視化

實時道路擁堵排名

歷史路況時間序列圖

每日每小時道況熱力圖

每小時內道況南丁格爾玫瑰圖

每小時內總體路況圓盤圖

各道路每日擁堵時長排名

實時路況數據下載

這個作品的構建過程與設計工具如下:

  • 原型設計:在構建dashboard之前要先思考要做哪些分析和可視化,這些圖形如何布局,顏色風格如何,交互效果如何做……這些都需要設計原型,這里用的是Axure;
  • 數據采集:這里主要采集的是深圳市道路交通委員會網站上的道路交通指數數據。主要是分兩種采集方式:一種是在shinydashboard中內嵌的實時爬蟲,這個用R實現;另一種是用Python爬蟲程序在服務器上持續采集一個月的數據作為歷史數據進行數據分析。政府網站一般技術含量都很低,沒什么反爬措施,因此只要不是爬得太猛把他們服務器搞垮了,爬起來沒有任何難度。
  • 數據存儲:主要用來存儲歷史數據,本作品以5分鐘為間隔采集一次,一個月下來也有百萬行數據。這里用到的是MySQL。
  • 數據處理、分析和可視化:這步是核心,下文細說。
  • CSS美化:原生的shinydashboard是很丑的,好在它支持引入CSS,所以可以通過CSS對顏色、文字大小等進行重新設計,以達到整體風格的統一、美觀。

shiny與shinydashboard的特點

shiny是Rstudio出品的一個可以在R中構建交互式網頁的引擎,shinydashboard則是基于shiny提供的一套快速搭建dashboard的工具。

先談談shiny的優缺點:

  • 能以較低的學習成本實現交互式網頁設計。數據分析師畢竟不是前端工程師,無需去學習HTML、CSS和JavaScript那一大堆東西(當然懂更好,也沒必要完全區分開來,至少騰訊就希望招懂前端的數據分析師或懂數據分析的前端工程師)也能很快構建出一個交互式網頁。
  • 開發原型成本低。一個綜合能力強的數據分析師(比如我),一個人就能快速地實現數據采集、數據處理、數據分析和數據可視化原型設計的全過程,這個時間成本遠遠小于在一支分工明確的團隊上下游間的磨合和交接。
  • 基本滿足常用的交互式效果。所以作為一個原型也是夠用了,產品經理可以直接提供給開發人員,分析師也可以直接拿來向領導匯報。
  • 基本不支持動態效果。至少到現在shiny連個支持動畫的接口都沒有,更別說前端那些炫酷的動態效果,這些都實現不了。
  • 計算速度慢。一旦數據量大或者數據處理過程復雜或者圖形構造復雜,就會卡得比較久。不過速度慢是R的天生缺陷。
  • 展示內容有限。想在shiny中展示什么,前提條件是shiny有對應的接口,否則白搭,這就是R中可以生成動畫但卻無法在shiny中展示的原因。
  • 部署困難。R中有另一個做dashboard的包flexdashboard,比shiny簡單而且直接生成一個html,但是shiny由于是Rstudio的商業軟件,所以受到的限制很多。拿部署來說,目前有兩種方式:一種是自己搭建局域服務器,不過這種方式只能內部人自己看,無法放在互聯網上公開;另一種方式就是部署到shinyapps.io網站上去,不過這個網站本身奇卡無比,十分影響體驗。

所用工具包

再談談R中所用的包,主要分類兩類:數據處理和可視化。

數據處理包:

  • rvest用來做實時爬蟲,每次程序一啟動就開始做***的實時爬蟲。
  • plyr和dplyr主要做數據篩選、排序、聚合計算等。
  • stringr用來對字符串分割、轉換等。
  • data.table用來讀取大量的歷史數據并做一些簡單的處理。
  • reshape2用來對數據框做變形處理。

可視化包:

  • shiny和shinydashboard用來搭建基本的網頁結構和內容。
  • ggplot2這個神器應該無人不知無人不曉,用來做基本的可視化。
  • ggiraph這也是個神奇的包,能把ggplot2的圖形轉化成交互式圖形,與ggplot2堪稱絕配。
  • dygraphs用來畫交互式的時間序列折線圖。
  • DT用來呈現交互式表格。

構建shinydashboard

一個shiny程序基本包含兩部分:ui.R和server.R。其中ui.R主要用來設計限定網頁結構,比如每一行是什么圖形或內容,尺寸大小如何設定,文字怎么插入,控件的位置和編號等等——基本上可以概括為:一切關于外在結構而不涉及內在計算的都在ui.R中設計。反之,server.R就主要用來做數據處理、計算和可視化,并把結果映射至ui.R中,所以它才是核心,代碼也長得多。

本作品的ui.R核心代碼如下:

  1. dashboardPage( 
  2.   dashboardHeader(title = "深圳道路的數據畫像",titleWidth = 220), 
  3.   dashboardSidebar( 
  4.     sidebarMenu( 
  5.     menuItem(iconv("實時路況展示",to="UTF-8"), tabName = "realtime_traffic", icon = icon("road")), 
  6.     radioButtons(inputId = "choose_direction", label = "請選擇一個方向:",selected=1,choiceNames=c("1(東->西 或 北->南)","2(西->東 或 南->北)"),choiceValues=1:2), 
  7.     radioButtons(inputId = "rank_class", label = "請選擇道路排名類別:",selected="擁堵排名",choices=c("擁堵排名","通暢排名")), 
  8.     numericInput(inputId = "rank_num",label = "請輸入道路交通排名數量:",min = 5,max = 100,step = 1,value=20), 
  9.     menuItem(iconv("道路畫像分析",to="UTF-8"), icon = icon("area-chart"), tabName = "statistics"), 
  10.     selectInput(inputId = "choose_road",label = "請選擇一條道路:",choices = all_roads), 
  11.     radioButtons(inputId = "choose_direction2", label = "請選擇一個方向:",selected=1,choiceNames=c("1(東->西 或 北->南)","2(西->東 或 南->北)"),choiceValues=1:2), 
  12.     menuItem(iconv("歷史路況回顧",to="UTF-8"), icon = icon("calendar"), tabName = "history"), 
  13.     dateInput(inputId = "choose_date", label = "請選擇4月的一天:",value = "2017-04-01",min = "2017-04-01",max = "2017-04-30"), 
  14.     radioButtons(inputId = "choose_direction3", label = "請選擇一個方向:",selected="東->西",choices=c("東->西","西->東","北->南","南->北")), 
  15.     radioButtons(inputId = "rank_class2", label = "請選擇道路排名類別:",selected="擁堵排名",choices=c("擁堵排名","通暢排名")), 
  16.     numericInput(inputId = "rank_num2",label = "請輸入道路交通排名數量:",min = 5,max = 100,step = 1,value=20), 
  17.     menuItem(iconv("實時數據下載",to="UTF-8"),tabName = "data_download",icon = icon("database")) 
  18.  ),width = 220), 
  19.   dashboardBody( 
  20.     tags$head( 
  21.       tags$link(rel = "stylesheet", type = "text/css", href = "custom.css")), 
  22.     tabItems( 
  23.       tabItem("realtime_traffic"
  24.               fluidRow( 
  25.                 box(ggiraphOutput("map"),width = 12,solidHeader = T,collapsible = T) 
  26.               ), 
  27.               fluidRow( 
  28.                 box(ggiraphOutput("rank1"),width = 6,solidHeader = T,collapsible = T), 
  29.                 box(ggiraphOutput("rank2"),width = 6,solidHeader = T,collapsible = T) 
  30.               ), 
  31.               fluidRow( 
  32.                 box(ggiraphOutput("rank3"),width = 6,solidHeader = T,collapsible = T), 
  33.                 box(ggiraphOutput("rank4"),width = 6,solidHeader = T,collapsible = T) 
  34.               ) 
  35.       ), 
  36.       tabItem("statistics"
  37.               fluidRow( 
  38.                 box(dygraphOutput("ts_history"),width = 12,solidHeader = T,collapsible = T) 
  39.                 ), 
  40.               fluidRow( 
  41.                 box(ggiraphOutput("heat"),width = 12,solidHeader = T,collapsible = T) 
  42.               ), 
  43.               fluidRow( 
  44.                 box(ggiraphOutput("polar_weekdays"),width = 6,solidHeader = T,collapsible = T), 
  45.                 box(ggiraphOutput("polar_holidays"),width = 6,solidHeader = T,collapsible = T) 
  46.               ) 
  47.               ), 
  48.       tabItem("history"
  49.               # fluidRow( 
  50.               #   box(img(src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3245526806,2208748886&fm=21&gp=0.jpg"),width = 12,solidHeader = T) 
  51.               # )), 
  52.               fluidRow( 
  53.                 box(ggiraphOutput("history_bars"),width = 12,solidHeader = T,collapsible = T) 
  54.               ), 
  55.               fluidRow( 
  56.                 box(ggiraphOutput("day_rank"),width = 12,solidHeader = T,collapsible = T) 
  57.               )), 
  58.       tabItem("data_download"
  59.               fluidRow( 
  60.               box( 
  61.                 dataTableOutput("rawdata"),width = 12 
  62.               ) 
  63.               ), 
  64.               fluidRow( 
  65.                 p("數據來源:",strong(a("深圳市交通運輸委員會",href="http://sztocc.sztb.gov.cn/roadcongmore.aspx"))) 
  66.               ), 
  67.               downloadButton("downloadCsv""下載實時數據"
  68.               ) 
  69.       ) 
  70.       )) 

這些代碼基本是在模板的基礎上改,menuItem()是左側sidebar里的一個子頁面,tabName是這個頁面的名稱,它來指定后來的各個布局元素存放在哪個頁面里。radioButtons是單選框,numericInput是數字輸入框,dateInput是日期選擇框,這些控件都有唯一一個id來標識,以input$id來取它們的值傳輸至server.R中。

在dashboardBody中,每個tabItem代表一個子頁面,這跟前面的tabName一一對應;里面的fluidRow表示一行,box是基本的容器,可以放圖形或其他輸出內容(也可以不加box,不過這樣沒法設定寬度),每個box的寬度***為12,同一行的多個box可以各自設定總和為12的寬度(這一點比flexdashboard自由)。

注意到代碼里的box的內容基本都有OutPut后綴(如ggiraphOutput、dataTableOutput、dygraphOutput等),這是那些包提供的shiny接口函數——換句話說如果一個包里有這種類似于以Output的shiny接口函數,它產出的內容才能放在shiny中,否則不行(這一點限制比不上flexdashboard)。

shinydashboard默認的風格很丑,好在它支持CSS,tag$head(tag$link())就可以引進CSS,不過這個CSS必須放在項目路徑下的www文件夾中。CSS正常地寫就好,如果遇到失效的,可能是優先級的問題,就多加點前綴。鑒于CSS是前端領域的知識,本文不多說。

加載包與讀取數據都可以放在shinyServer()外面執行。關于數據,要分為兩種:一種是固定不變的,這種按照常規的數據賦值方法即可;另一種是隨著用戶的交互而動態改變的,這種要加個reactive()函數,比如:

  1. traffic_choosen = reactive(traffic[traffic$direction_id == input$choose_direction, 1: 7]) 
  2. roads_map < - reactive({ 
  3.     roads_map < - join(roads, traffic_choosen(), type="inner"
  4.     roads_map 
  5. }) 

這里的traffic_choosen和roads_map都是根據用戶在名為direction_id的控件中的選擇值篩選的子集,所以它是動態可變的,都加了一個reactive();不過要注意加了reactive()后,traffic_choosen和roads_map就不是一個變量,而是一個函數,如果要調用這個動態變量值,就必須要加括號。

后面就是給ui.R中的框架填充內容,一般都是以output$id來指定。

  1. output$ts_history <- renderDygraph({ 
  2.   df1 <- (traffic_history %>% filter(road == input$choose_road & direction_id==1))[,c("time","index")] 
  3.   df2 <- (traffic_history %>% filter(road == input$choose_road & direction_id==2))[,c("time","index")] 
  4.   df <- full_join(df1,df2,by="time"
  5.   df <- df[!duplicated(df$time),] 
  6.   rownames(df) <- df$time 
  7.   df$time <- NULL 
  8.   colnames(df) <- c("方向1","方向2"
  9.   dygraph(df,main = paste(input$choose_road,"4月內歷史交通指數",sep="")) %>%  
  10.     dyOptions(colors=c("orange","steelblue"),axisLineColor = "#FEFEFE",drawGrid = F) %>% 
  11.     dyLegend(show="onmouseover",labelsSeparateLines = T) %>% 
  12.     dyRangeSelector() %>%  
  13.      dyUnzoom() 
  14. }) 

比如這段代碼就指定了一個id為ts_history的用dygraph包畫的時間序列交互圖,而在ui.R中要與其呼應:

  1. box(dygraphOutput("ts_history"), width=12, solidHeader=T, collapsible=T) 

比如這段代碼就指定了一個id為ts_history的用dygraph包畫的時間序列交互圖,而在ui.R中要與其呼應:

  1. box(dygraphOutput(“ts_history”), width=12, solidHeader=T, collapsible=T) 

注意到畫圖語句外層都有一個render為前綴的函數(renderDygraph、renderggiraph、renderDataTable),同樣這也是shiny接口的標志,必須以這個函數轉換之后才能在shiny中傳輸。

server.R中也可以捕獲用戶的在圖形中的交互行為,聯想到ggiraph交互圖形中總有一個參數是data_id,之前以為填什么不重要,但是在這里起作用了——用戶在某處點擊一下,便捕獲到該處的data_id值。

  1. selected_road <- reactive({ 
  2. if( is.null(input$map_selected)){ 
  3.   NA 
  4. else input$map_selected 
  5. }) 

這段代碼的含義就是:如果用戶沒有選中某條道路,select_road就是NA;反之就是用戶選中的那條道路。

通過響應捕捉,可以進一步強化交互性。

主要圖形解析

下面開始對前面的幾張圖的設計思路與處理方法做個簡單的介紹。

實時道路交通可視化

這個圖最為復雜,它首先以深圳地圖為底圖,然后再疊加路徑圖。這個路徑圖是100+條道路的經緯度坐標畫成的。而這些道路的經緯度坐標獲取難度就比較大:首先在百度地圖上查詢道路起點和終點的坐標,然后調用百度地圖API,輸入起點和終點的坐標,查詢駕車路線,會返回一串散點的坐標,在ggplot2中把這些散點連接成path就可以把道路可視化出來;不過這些點的坐標有可能不準,所以還需要人工校對。這些路徑的顏色映射的是rvest采集的該道路實時的交通指數——由于交委網站上在任一時刻并不總是會有全量的數據,因此本圖中只展示有數據的道路的交通狀況。從這張圖中可以一眼看出整個深圳市總體的道路狀況,一眼可看出哪條道路最堵。

實時道路排名

這個比較簡單,根據用戶選擇的排名種類和排名數據對實時數據進行篩選、排序,以條形圖的方式展現即可。

歷史路況時間序列圖

這個時間序列圖把一條道路一個月內每5分鐘的交通指數都可視化出來了。這個圖形很神奇,橫軸縱軸都可以縮放選擇,下方有縮略圖。

每日每小時道況熱力圖

這個熱力圖放在大屏上就像一座墻,倒還是挺壯觀的。這是一個30*24的熱力圖,每一塊映射每小時內的平均交通指數,用以呈現周期性規律。

每小時內道況南丁格爾玫瑰圖

這里分為工作日和節假日來呈現某條道路24小時內的總體交通狀況,其中每一片花瓣映射著各種交通狀況的比例。

每小時內總體路況圓盤圖

這張圖以每天為單位,匯總全部條道路的交通指數,用以研究每日全市總體的交通周期性規律。

各道路每日擁堵時長排名

原本以5min為間隔采集的數據都是離散的,無法計算連續時長。這里借鑒了微積分的思想,以每一個5min內的最終狀態作為5min內的持續狀態,于是多個5min累加來代表一天中的擁堵時長。

實時路況數據下載

這個就是展示一下實時數據并提供下載,如果你不會爬蟲,可以在這上面來下載數據。

Shiny中的坑

無論是ui.R還是server.R,編碼都強制是UTF-8,因此在輸入中文之前***先將文件存成UTF-8,以免編碼不對只能重新讀入。同樣,讀入的數據如果包含中文,***讀進來也要使其編碼為UTF-8,不然顯示會有亂碼。

彈出的R本地服務器不夠清晰,甚至在有的機器上圖形一直無法加載——所以檢查的時候***還是在瀏覽器中檢查。

關于下載的控件,不要在彈出的R窗口中執行,總是報錯;在瀏覽器中試一下就沒問題。

按照shinyapps.io的流程,部署過程可以不出錯,甚至它還在計算時間流量;不過基于shinydashboard做的東西,打開網頁一看就會報錯“沒有名為shinydashboard的程楫包”,所以也許用純粹的shiny來做的話可能能發布成功,但由于框架就是基于shinydashboard的,不能再推翻重來——所以就沒辦法部署。

所以shiny終究只能產出一個原型,它離真正企業級的數據可視化系統差距還是不小。因此,如果是專門做數據可視化的,前端是必須要前進的方向。

責任編輯:武曉燕 來源: 36大數據
相關推薦

2015-08-20 10:06:36

可視化

2022-09-29 11:16:21

Python數據可視化

2017-10-31 09:38:53

大數據數據可視化Python

2019-08-01 13:28:07

AR智能交通可視化

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2020-09-07 12:42:18

表單可視化開源

2017-10-17 11:58:54

R語言UpSetR可視化

2025-10-10 07:00:00

Python數據可視化數據分析

2025-09-26 13:53:54

2022-10-09 09:14:31

政策人工智能

2015-10-29 09:36:48

2023-04-04 08:10:45

SQL數據可視化

2024-12-25 16:35:53

2017-10-14 13:54:26

數據可視化數據信息可視化

2022-08-26 09:15:58

Python可視化plotly

2009-04-21 14:26:41

可視化監控IT管理摩卡

2025-04-01 08:30:00

Plotly數據可視化數據分析

2024-04-25 07:00:00

多人協同可視化協同編輯

2013-07-31 10:14:15

炎黃盈動BPM
點贊
收藏

51CTO技術棧公眾號

国产精品一区二区av| 理论片在线不卡免费观看| 久久精品香蕉视频| yourporn在线观看中文站| 久久成人羞羞网站| 久久久久久伊人| 日韩精品电影一区二区三区| 成人激情久久| 麻豆精品一区二区av白丝在线| www亚洲精品| 国产精品成人无码专区| 黄色动漫在线观看| 99久精品国产| 亚洲一区二区久久久久久久| 国产情侣自拍av| 自拍日韩欧美| 尤物yw午夜国产精品视频| 亚洲精品成人无码毛片| 高清在线一区| 欧美性xxxxhd| 青青草国产免费| 免费在线视频欧美| 国产网站一区二区| 国内精品久久国产| 国产乱码精品一区二三区蜜臂 | 亚洲国产精品www| 男人的天堂a在线| 国产美女精品一区二区三区| 国产999精品久久久| 日韩精品成人一区| 亚洲欧洲日韩| 日韩视频亚洲视频| 欧美日韩国产黄色| 国产日产精品_国产精品毛片| 精品欧美乱码久久久久久| 色呦色呦色精品| 成人涩涩视频| 91国产丝袜在线播放| 久久99精品久久久久久水蜜桃| 成人免费区一区二区三区| 亚洲深深色噜噜狠狠爱网站| 最近2019中文字幕大全第二页| 成人手机在线免费视频| 日韩av午夜| 亚洲成人激情在线| 少妇搡bbbb搡bbb搡打电话| 国产一区二区三区| 91精品免费观看| 亚洲欧美日韩三级| 全球中文成人在线| 欧美日本一区二区三区四区| 国产三级三级看三级| 国模一区二区| 欧美午夜在线观看| 成人免费在线观看视频网站| abab456成人免费网址| 欧美制服丝袜第一页| 日韩精品无码一区二区三区免费| 欧美最新精品| 欧美日韩中文精品| 欧美在线aaa| 伊人久久大香线蕉综合影院首页| 欧美揉bbbbb揉bbbbb| 日日干夜夜操s8| 婷婷成人av| 日韩女同互慰一区二区| 成人区人妻精品一区二| 欧美日韩一本| 一区二区国产精品视频| 91视频免费看片| 自拍偷拍欧美| 91精品国产91久久久久久不卡| 天天操天天摸天天干| 久久资源在线| 国产精品日本精品| a级片在线免费看| 先锋a资源在线看亚洲| 97国产精品免费视频| 日韩在线不卡av| 综合久久一区| 97成人在线视频| 国产成人自拍偷拍| 9久re热视频在线精品| 日本高清视频一区| 国产又大又粗又硬| 成人激情校园春色| 婷婷久久伊人| 怡红院在线播放| 欧美午夜激情在线| av中文字幕网址| 猫咪成人在线观看| xxxxx91麻豆| www.国产成人| 久久成人久久鬼色| 精品国产乱码一区二区三区四区| 国产综合在线观看| 一区二区三区四区av| 中文字幕一区二区三区四区五区| 2024最新电影免费在线观看 | 欧美日韩dvd| sese一区| 亚洲国产精品久久久久婷婷884| 久久精品国产精品亚洲色婷婷| 黄色欧美视频| 日韩黄色在线免费观看| 久久精品一区二区三区四区五区| 一区二区毛片| 成人三级在线| 亚洲黄色小说网址| 国产区在线观看成人精品| 欧美下载看逼逼| 久香视频在线观看| 一区二区三区**美女毛片| 国产精品人人爽人人爽| 国产精品久久久久久久久久白浆| 中文综合在线观看| 男人天堂2024| 成人黄色a**站在线观看| 一区二区欧美日韩| 性欧美hd调教| 亚洲精品v天堂中文字幕| 91人妻一区二区三区蜜臀| 久热国产精品| 久久一区二区精品| 国产一线二线在线观看 | 在线亚洲欧美视频| 精品成人久久久| 国产91综合网| 99久re热视频精品98| 黄网站免费在线播放| 色哟哟精品一区| 亚洲av无码一区二区三区观看 | 欧美变态另类刺激| 视频亚洲一区二区| 美女精品久久久| 国产尤物在线观看| 成人欧美一区二区三区白人 | 国产一区导航| 国产一区二区三区奇米久涩| 免费在线看电影| 日韩欧美一区二区视频| 放荡的美妇在线播放| 久久精品国产在热久久| 亚洲啪啪av| 99精品国自产在线| 最近中文字幕2019免费| 在线视频播放大全| 亚洲国产激情av| 99sesese| 91精品一区二区三区综合在线爱| 欧美激情精品久久久| 国产三级在线观看视频| 91亚洲国产成人精品一区二区三| 日韩 欧美 视频| 林ゆな中文字幕一区二区| 国语自产精品视频在线看抢先版图片 | 精品人妻一区二区三区日产| 狠狠色狠狠色综合日日tαg | 精品毛片免费观看| 国产精品久久97| 精品人妻一区二区三区浪潮在线 | 中文字幕制服诱惑| 亚洲欧洲精品天堂一级 | 日韩黄色片视频| 国产影视一区| 国产视频999| 性xxxxfjsxxxxx欧美| 亚洲第一精品福利| 麻豆成人免费视频| 国产精品视频你懂的| 亚洲第一区第二区第三区| 国产一区视频在线观看免费| 精品日本一区二区三区在线观看| 亚洲精品国产精品国产| 在线观看国产成人av片| av免费在线不卡| 天天综合色天天| 日本黄色小视频在线观看| 国产精一区二区三区| 免费无码毛片一区二三区| 国产欧美日韩在线观看视频| 国产日韩在线视频| 成人bbav| 日韩欧美国产一区二区三区 | 久久国产精品99国产| 亚洲在线第一页| 三级在线观看视频| 日韩一区二区三区xxxx| 特黄aaaaaaaaa真人毛片| 91国偷自产一区二区三区观看| caoporn91| 26uuu亚洲| 亚洲AV无码久久精品国产一区| 国产日韩欧美一区在线| 最近中文字幕免费mv| 偷拍视屏一区| 91综合免费在线| 免费亚洲电影| 国内精品久久影院| 韩国中文字幕在线| 亚洲日本欧美中文幕| 国产女主播福利| 欧洲精品一区二区| 日本在线观看中文字幕| 成人欧美一区二区三区1314| 成人免费看aa片| 国产成人在线视频播放| 欧美日韩在线成人| 亚洲日本久久| 乱子伦一区二区| 四季av一区二区凹凸精品| 六月婷婷久久| 国产精品久久久久久久久久白浆| 成人h视频在线观看播放| 澳门成人av网| 国语自产精品视频在线看| 国内精品不卡| 在线视频亚洲欧美| 欧美日韩国产综合视频| 亚洲精品一区二区在线观看| 一区二区三区黄| 欧美色精品在线视频| 极品国产91在线网站| 亚洲va欧美va人人爽| 欧美成人综合色| 中文字幕日本乱码精品影院| 日韩中文字幕有码| 精品一区二区免费看| 黄色av免费在线播放| 国产视频亚洲| 僵尸世界大战2 在线播放| 亚洲乱码免费伦视频| 一区二区三区av| 四虎8848精品成人免费网站| 婷婷四月色综合| 欧美三级三级| 午夜精品福利一区二区| 国产a久久精品一区二区三区| 久久国产主播精品| 麻豆一区二区| 欧美区高清在线| 特黄特色欧美大片| 蜜桃av噜噜一区二区三| 九九在线高清精品视频| 欧美一区二区影视| 蜜乳av综合| 亚洲精品日韩在线观看| 青青草原综合久久大伊人精品 | av无码av天天av天天爽| 99亚偷拍自图区亚洲| 99久久免费看精品国产一区 | 日韩三级免费观看| 日韩av在线电影| 午夜精品久久久久影视| 国产尤物在线视频| 色8久久人人97超碰香蕉987| 波多野结衣午夜| 欧美男人的天堂一二区| 国产一区二区三区黄片| 日韩一区二区三区免费看| 精品久久国产视频| 亚洲国产精品va| 国产中文字幕在线看| 中文字幕综合一区| 色女人在线视频| 97成人精品视频在线观看| 综合在线影院| 91久久国产精品91久久性色| 日韩一区二区三区精品视频第3页| 国产区一区二区| 国产成人调教视频在线观看| 亚洲精品无人区| 欧美激情aⅴ一区二区三区| 中国丰满熟妇xxxx性| 欧美亚洲一区| 国产乱码一区二区三区四区| 免费国产自线拍一欧美视频| 欧美日韩大尺度| 韩国一区二区三区| 国产婷婷在线观看| 国产网站一区二区| 粉嫩av性色av蜜臀av网站| 欧美日韩视频在线| 一级片视频网站| 亚洲第一免费播放区| 成人精品一区二区三区免费| 久久成人在线视频| 天堂√8在线中文| 91深夜福利视频| 亚洲人成网站77777在线观看| 国产精品福利视频| 精品国产aⅴ| 欧美这里只有精品| 欧美成人日韩| 国产综合免费视频| 国产精品一级片| 国产sm调教视频| 亚洲一区二区三区三| 亚洲av综合一区| 精品国产自在久精品国产| 国产高清视频免费最新在线| 欧美日韩国产成人高清视频| 欧洲一级精品| 好看的日韩精品视频在线| 色综合咪咪久久网| 亚洲精品国产一区| 国产一区二区三区久久久久久久久| 日本不卡一区二区在线观看| 91免费小视频| 久久免费少妇高潮99精品| 欧美日韩中文精品| 免费在线国产| 91精品国产高清自在线看超| 香蕉久久久久久| 日韩免费电影一区二区三区| 中文高清一区| 无码人妻久久一区二区三区蜜桃| 国产精品久久久久久亚洲毛片| 亚洲精品男人天堂| 亚洲精品电影在线观看| 中文字幕在线播放网址| 国产日产欧美a一级在线| 国产亚洲一卡2卡3卡4卡新区| 欧美日韩二三区| 成人黄色网址在线观看| 久久一二三四区| 欧美一区二区三区不卡| 老司机av在线免费看| 国产精品香蕉av| 欧洲毛片在线视频免费观看| 漂亮人妻被中出中文字幕| 99视频精品在线| 日韩免费黄色片| 精品国产人成亚洲区| 先锋成人av| www.久久草| 亚洲视频福利| 欧美日韩一区二区区| 一区二区三区视频在线观看| 精品黑人一区二区三区在线观看 | 亚洲天堂网av在线| 在线不卡a资源高清| 黄av在线免费观看| 91香蕉亚洲精品| 欧美日韩伊人| 尤物网站在线观看| 偷拍日韩校园综合在线| 亚洲欧洲视频在线观看| 欧美一区视频在线| 啪啪亚洲精品| 亚洲精品久久久中文字幕| 国产精品久久久久久久浪潮网站 | 国产在线一区视频| 亚洲国产成人一区| 欧美aaaaa性bbbbb小妇| 欧美亚洲另类在线一区二区三区| 久久久久久黄| 国产aaaaaaaaa| 日韩精品一区二区三区在线观看 | 欧美一区二区三区久久精品茉莉花| 国产欧美精品一二三| 夜夜揉揉日日人人青青一国产精品| 黄色av网站免费在线观看| 欧美一级电影久久| 精品成人影院| 天天操天天干天天做| 亚洲自拍与偷拍| 日本亚洲欧美| 国产欧美日韩中文| 国内一区二区三区| jizz日本免费| 欧美日本国产视频| 国产美女一区视频| 欧美资源一区| 狠狠色丁香婷综合久久| 国产成人精品一区二三区| 一区二区三区视频免费在线观看| 国产激情精品一区二区三区| 好吊妞无缓冲视频观看| 国产精品久久久久久久久图文区| 国产精品午夜福利| 午夜精品久久久久久久99热| 国产成人短视频在线观看| www.成人黄色| 精品久久久久久亚洲国产300 | 乱中年女人伦av一区二区| 亚洲综合色在线观看| 亚洲一区二区欧美| porn视频在线观看| 国产精品日韩一区二区三区| 天堂蜜桃91精品| 久久国产免费观看| 一本色道久久综合亚洲精品小说| 日韩在线观看中文字幕| 99视频免费播放| 亚洲成人黄色影院| a免费在线观看| 热舞福利精品大尺度视频| 国产福利一区在线| 亚洲精品无码久久久久|