盤一盤畫相關(guān)性熱圖的幾種方式

R可視化相關(guān)性矩陣的幾種方案

R中相關(guān)性矩陣的可視化解決方法在已經(jīng)有很多了,我們?cè)谶@里總結(jié)一些常用的都有哪些:

  1. ggplot2
  2. corrplot
  3. 熱圖包(pheatmap懦鼠,heatmap包等)
  4. ggally 包中的 ggcorr() 函數(shù)
  5. ggcorrplot

準(zhǔn)備數(shù)據(jù)集

我們就使用R中內(nèi)置數(shù)據(jù)集mtcars, 計(jì)算出矩陣的相關(guān)系數(shù)corr匙监,后續(xù)出圖都將是基于這個(gè)數(shù)據(jù)進(jìn)行繪制。

data("mtcars")
cormat <- round(cor(mtcars), 1) # 計(jì)算相關(guān)系數(shù),默認(rèn)是pearson方法

#      mpg  cyl disp   hp drat   wt qsec   vs   am gear carb
#mpg   1.0 -0.9 -0.8 -0.8  0.7 -0.9  0.4  0.7  0.6  0.5 -0.6
#cyl  -0.9  1.0  0.9  0.8 -0.7  0.8 -0.6 -0.8 -0.5 -0.5  0.5
#disp -0.8  0.9  1.0  0.8 -0.7  0.9 -0.4 -0.7 -0.6 -0.6  0.4
#......

方式一: ggplot2

  1. 通過(guò)reshape2包將矩陣變換為長(zhǎng)數(shù)據(jù)格式再進(jìn)行繪制
library(reshape2)
melted_cormat <- melt(cormat)
head(melted_cormat)

##   Var1 Var2 value
## 1  mpg  mpg  1.00
## 2 disp  mpg -0.85
## 3   hp  mpg -0.78
## 4 drat  mpg  0.68
  1. 使用 geom_tile() 函數(shù)或者 geom_raster() 函數(shù)繪制相關(guān)性系數(shù)的圖,再通過(guò) coord_equal() 函數(shù)固定坐標(biāo)軸的縱橫比,簡(jiǎn)單出圖瞅瞅雨膨。
library(ggplot2)
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value))+geom_raster() +coord_equal()
圖片.png
  1. 注意,相關(guān)性矩陣是有冗余信息的(矩陣的上三角和下三角信息表達(dá)一樣的意思)读串。我們可以使用下面函數(shù)(參考)將它的一半設(shè)為NA聊记,讓它只輸出上三角或者下三角矩陣的圖形(分別利用 upper.trilower.tri 函數(shù))撒妈。
# 得到上三角矩陣
  get_lower_tri<-function(cormat){
    cormat[upper.tri(cormat)] <- NA
    return(cormat)
  }
  # 得到下三角矩陣
  get_upper_tri <- function(cormat){
    cormat[lower.tri(cormat)]<- NA
    return(cormat)
  }
  
 # 使用
upper_tri <- get_upper_tri(cormat)
upper_tri

#     mpg  cyl disp   hp drat   wt qsec   vs   am gear carb
#mpg    1 -0.9 -0.9 -0.9  0.7 -0.9  0.5  0.7  0.6  0.5 -0.7
#cyl   NA  1.0  0.9  0.9 -0.7  0.9 -0.6 -0.8 -0.5 -0.6  0.6
#disp  NA   NA  1.0  0.9 -0.7  0.9 -0.5 -0.7 -0.6 -0.6  0.5
#hp    NA   NA   NA  1.0 -0.5  0.8 -0.7 -0.8 -0.4 -0.3  0.7
#drat  NA   NA   NA   NA  1.0 -0.8  0.1  0.4  0.7  0.7 -0.1
#wt    NA   NA   NA   NA   NA  1.0 -0.2 -0.6 -0.7 -0.7  0.5
#qsec  NA   NA   NA   NA   NA   NA  1.0  0.8 -0.2 -0.1 -0.7
#vs    NA   NA   NA   NA   NA   NA   NA  1.0  0.2  0.3 -0.6
#am    NA   NA   NA   NA   NA   NA   NA   NA  1.0  0.8 -0.1
#gear  NA   NA   NA   NA   NA   NA   NA   NA   NA  1.0  0.1
#carb  NA   NA   NA   NA   NA   NA   NA   NA   NA   NA  1.0
  1. 畫圖
library(reshape2)
melted_cormat <- melt(upper_tri, na.rm = TRUE)
# Heatmap
library(ggplot2)

ggplot(data = melted_cormat, aes(Var2, Var1, fill = value))+
  geom_tile(color = "white")+
  scale_fill_gradient2(low = "green", high = "gold", mid = "white", 
                       midpoint = 0, limit = c(-1,1), space = "Lab", 
                       name="Pearson\nCorrelation") +
  theme_minimal()+ 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, 
                                   size = 12, hjust = 1))+
  coord_fixed() # 這個(gè)函數(shù)確保x軸上的一個(gè)單位長(zhǎng)度與y軸上的一個(gè)單位長(zhǎng)度相同。

圖片.png
  1. 根據(jù)聚類順序重新排序繪制相關(guān)性圖排监,這樣的好處是將相關(guān)系數(shù)接近的緊挨在一起狰右,更有利于我們觀察數(shù)據(jù)中變化模式。這里我們利用hclust函數(shù)方法實(shí)現(xiàn)層級(jí)聚類舆床。
## 我們寫個(gè)函數(shù) 
reorder_cormat <- function(cormat){
# 使用變量間的相關(guān)系數(shù)作為距離
dd <- as.dist((1-cormat)/2)
hc <- hclust(dd)
cormat <-cormat[hc$order, hc$order]
}


# 重排序相關(guān)矩陣
cormat <- reorder_cormat(cormat)
upper_tri <- get_upper_tri(cormat)
# 變換為長(zhǎng)格式數(shù)據(jù)
melted_cormat <- melt(upper_tri, na.rm = TRUE)
p <- ggplot(data = melted_cormat, aes(Var2, Var1, fill = value))+
  geom_tile(color = "white")+
  scale_fill_gradient2(low = "green", high = "gold", mid = "white", 
                       midpoint = 0, limit = c(-1,1), space = "Lab", 
                       name="Pearson\nCorrelation") +
  theme_minimal()+ 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, 
                                   size = 12, hjust = 1))+
  coord_fixed()
p
圖片.png
  1. 將相關(guān)性系數(shù)增加在圖形上
p + 
geom_text(aes(Var2, Var1, label = value), color = "black", size = 4) +
theme(
  axis.title.x = element_blank(),
  axis.title.y = element_blank(),
  panel.grid.major = element_blank(),
  panel.border = element_blank(),
  panel.background = element_blank(),
  axis.ticks = element_blank(),
  legend.justification = c(1, 0),
  legend.position = c(0.6, 0.7),
  legend.direction = "horizontal")+
  guides(fill = guide_colorbar(barwidth = 7, barheight = 1,
                title.position = "top", title.hjust = 0.5))
圖片.png

方式二: corrplot

這個(gè)包應(yīng)該算是可視化相關(guān)性圖最簡(jiǎn)便的方式了吧棋蚌,還是推薦大家去看下corrplor包的文檔,作者寫的算是最詳細(xì)的挨队。

### R中輸入?corrplot看下corrplot中的參數(shù)
corrplot(corr, method = c("circle", "square", "ellipse", "number", "shade",
  "color", "pie"), type = c("full", "lower", "upper"), add = FALSE,
  col = NULL, bg = "white", title = "", is.corr = TRUE, diag = TRUE,
  outline = FALSE, mar = c(0, 0, 0, 0), addgrid.col = NULL,
  addCoef.col = NULL, addCoefasPercent = FALSE, order = c("original",
  "AOE", "FPC", "hclust", "alphabet"), hclust.method = c("complete", "ward",
  "ward.D", "ward.D2", "single", "average", "mcquitty", "median", "centroid"),
  addrect = NULL, rect.col = "black", rect.lwd = 2, tl.pos = NULL,
  tl.cex = 1, tl.col = "red", tl.offset = 0.4, tl.srt = 90,
  cl.pos = NULL, cl.lim = NULL, cl.length = NULL, cl.cex = 0.8,
  cl.ratio = 0.15, cl.align.text = "c", cl.offset = 0.5, number.cex = 1,
  number.font = 2, number.digits = NULL, addshade = c("negative",
  "positive", "all"), shade.lwd = 1, shade.col = "white", p.mat = NULL,
  sig.level = 0.05, insig = c("pch", "p-value", "blank", "n", "label_sig"),
  pch = 4, pch.col = "black", pch.cex = 3, plotCI = c("n", "square",
  "circle", "rect"), lowCI.mat = NULL, uppCI.mat = NULL, na.label = "?",
  na.label.col = "black", win.asp = 1, ...)

可以看到包內(nèi)參數(shù)特別之多谷暮,但是都很容易理解,我們簡(jiǎn)單使用一下吧~

method 參數(shù)

支持七種作圖效果盛垦,分別是 "circle" (默認(rèn)), "square", "ellipse", "number", "pie", "shade" and "color".

type參數(shù)控制只輸出上三角或者下三角

# 隨便用一種
corrplot(cormat,method = 'pie',type = "upper")
圖片.png
# 也可以混合搭配湿弦,上下三角各用一種效果
corrplot.mixed(cormat, lower = "ellipse", upper = "circle")
圖片.png

重排序矩陣進(jìn)行可視化

內(nèi)置了四種排序算法:AOE, FPC,hclust,alphabet

# 我們使用最常見的hclust層級(jí)聚類方法
corrplot(cormat, order = "hclust",method = 'pie')
圖片.png

自定義顏色

addrect = 2 根據(jù)層次聚類在圖上繪制的矩形的數(shù)量,僅在排序方法為hclust時(shí)有效腾夯。如果為空(默認(rèn)值)颊埃,則不添加任何矩形。

col1 <- colorRampPalette(c("#7F0000", "red", "#FF7F00", "yellow", "white",
                           "cyan", "#007FFF", "blue", "#00007F"))
# 這里再推薦幾種配色
# col = heat.colors(100)
# col = terrain.colors(100)
# col = cm.colors(100)
# col = brewer.pal(n = 8, name = "PuOr") 利用RColorBrewer包調(diào)色
corrplot(cormat, , order = "hclust", addrect = 2, col = col1(100)) # COL1(100)代表漸變色階劃分為100份俯在。
圖片.png

計(jì)算p值相關(guān)矩陣并可視化

利用cor.mtest函數(shù)基于原始數(shù)據(jù)計(jì)算相關(guān)性竟秫,并執(zhí)行顯著性檢驗(yàn)娃惯。

res1 <- cor.mtest(mtcars, conf.level = .95) # 計(jì)算相關(guān)顯著性P值矩陣
corrplot(cormat, p.mat = res1$p, sig.level = .05) # 設(shè)置顯著性閾值為0.05
圖片.png

除此之外:

設(shè)置insig = "p-value" 可將不顯著的系數(shù)顯示出數(shù)值

corrplot(cormat, p.mat = res1$p, insig = "p-value")   #  增加sig.level = -1可顯示全部系數(shù)的P值
圖片.png

設(shè)置insig = "blank" 可將不顯著的設(shè)置為空白

corrplot(cormat, p.mat = res1$p, insig = "blank")
圖片.png

設(shè)置insig = "label_sig" 可將P值以 * 號(hào)方式展示出來(lái), 通過(guò)設(shè)置sig.level = c(.001, .01, .05) 可以將不同范圍內(nèi)的p值用 * 來(lái)表示 ,如p值小于0.001的系數(shù)設(shè)置為三個(gè) * 跷乐。

corrplot(cormat, p.mat = res1$p, insig = "label_sig",
         sig.level = c(.001, .01, .05), pch.cex = .9, pch.col = "white")
圖片.png

我們還可以自定義顯著的系數(shù)標(biāo)簽

corrplot(cormat, p.mat = res1$p, insig = "label_sig", pch.col = "grey",
         pch = "顯著", pch.cex = .7, order = "AOE")
圖片.png

OK, 基本使用如上所述,更多參數(shù)自己摸索吧~~

方式三:熱圖包

熱圖包有很多種趾浅,有空會(huì)專門介紹一下R中流行的幾個(gè)熱圖包(網(wǎng)上其實(shí)也有很多教程了)愕提,這里就簡(jiǎn)單拿倆個(gè)常用的舉個(gè)例子吧~~

pheatmap包

library(RColorBrewer)
coul <- colorRampPalette(brewer.pal(8, "PiYG"))(25)

pheatmap(cormat,cellwidth = NA, cellheight =NA, treeheight_row = 50,
         treeheight_col = 50 ,color =coul,legend=TRUE,
         border_color=NA, fontsize_row=8, fontsize_col=10,
         ,main="Pheatmap")
圖片.png

gplot包中的heatmap.2函數(shù)

library(gplots)
library(RColorBrewer)
coul <- colorRampPalette(brewer.pal(8, "PiYG"))(25)#換個(gè)好看的顏色


heatmap.2(cormat,
          trace="none",#不顯示trace
          col=coul,#修改熱圖顏色
          density.info = "none",#圖例取消density
          key.xlab ='Correlation',
          key.title = "",
          cexRow = 1,cexCol = 1,#修改橫縱坐標(biāo)字體
          Rowv = F,Colv = F, #去除聚類
          margins = c(6, 6),
          cellnote = cormat,notecol='black'#添加相關(guān)系數(shù)的值及修改字體顏色
)

圖片.png

方式四:GGally包

“GGally”是“ggplot2”包的一個(gè)擴(kuò)展,它內(nèi)部添加了幾個(gè)函數(shù)來(lái)降低幾何對(duì)象與轉(zhuǎn)換后的數(shù)據(jù)組合的復(fù)雜性皿哨。其中包括相關(guān)性圖浅侨、平行坐標(biāo)繪圖,繪制網(wǎng)絡(luò)等等的函數(shù)证膨,我們這次只介紹下其中的ggcorr函數(shù)來(lái)繪制相關(guān)性圖如输,因?yàn)槭莋gplot2的擴(kuò)展,所以它支持代碼中添加我們熟悉的ggplot語(yǔ)法去設(shè)置主題央勒,圖例不见,顏色等等。

參數(shù)

R中輸入?ggcorr查看參數(shù)使用, 也可看該包的Documentation或者Github進(jìn)行學(xué)習(xí)崔步。

?ggcorr

ggcorr(data, method = c("pairwise", "pearson"), cor_matrix = NULL,
  nbreaks = NULL, digits = 2, name = "", low = "#3B9AB2",
  mid = "#EEEEEE", high = "#F21A00", midpoint = 0, palette = NULL,
  geom = "tile", min_size = 2, max_size = 6, label = FALSE,
  label_alpha = FALSE, label_color = "black", label_round = 1,
  label_size = 4, limits = c(-1, 1), drop = is.null(limits) ||
  identical(limits, FALSE), layout.exp = 0, legend.position = "right",
  legend.size = 9, ...)  # 參數(shù)也不少,下面只會(huì)提及幾個(gè)重要的參數(shù)稳吮。

簡(jiǎn)單使用

# Cran
install.packages('GGally')
# Github
library(devtools)
install_github("ggobi/ggally")
library(GGally)

#簡(jiǎn)單出圖
ggcorr(cormat)
圖片.png

自定義顏色

通過(guò)設(shè)置low,mid井濒,high可以設(shè)置為三色漸變灶似。

# 圖形種類列林、字體大小、顏色等設(shè)置
ggcorr(cormat, ,geom = 'circle',size = 5, 
       low = 'green', mid = 'white', high = 'gold',
       min_size = 5,  max_size = 15,label = TRUE,
       label_alpha = TRUE)  
圖片.png

另外酪惭,通過(guò)nbreaks參數(shù)希痴,我們可以將顏色劃分為多個(gè)范圍值。

library(RColorBrewer) # 提供調(diào)色板
ggcorr(
  cormat, 
  geom = 'circle',  # 設(shè)置圖形的展示樣式效果春感,還有"blank","text","tile"三種效果润梯,可以自己試一下
  max_size = 15,    # 控制最大值
  min_size = 5,   # 控制最小值
  size = 3,    
  hjust = 0.75,
  nbreaks = 6,     # 劃分為色階范圍。n為整數(shù)
  digits = 2,     # 控制小數(shù)位數(shù)
  palette = 'Set3',  # 如果nbreak參數(shù)使用甥厦,我們
  label = TRUE,   # 顯示標(biāo)簽
  legend.position = "bottom", legend.size = 12)
圖片.png

顯示值高的系數(shù)

參考了這個(gè)帖子纺铭,了解到我們輸入ggcorr(cormat)$data其實(shí)可以查看內(nèi)部相關(guān)性數(shù)據(jù)格式,有時(shí)候我們不太關(guān)注低相關(guān)性的系數(shù)刀疙,因此我們可以根據(jù)coefficient相關(guān)系數(shù)的那一列數(shù)據(jù)在相關(guān)性圖中只顯示出絕對(duì)值大于多少的系數(shù)舶赔,并用顏色區(qū)分是正相關(guān)還是負(fù)相關(guān)。

head(ggcorr(cormat)$data)

#     x   y coefficient label
#  cyl mpg  -0.9910782  -1.0
# disp mpg  -0.9892051  -1.0
#   hp mpg  -0.9542264  -1.0
# drat mpg   0.9365901   0.9
#   wt mpg  -0.9867463  -1.0

ggcorr(cormat, geom = "blank",
       label = TRUE, hjust = 0.75) +
  geom_point(size = 10, aes(color = coefficient > 0, 
                            alpha = abs(coefficient) > 0.7)) +
  scale_alpha_manual(values = c("TRUE" = 0.5, "FALSE" = 0)) +
  scale_color_manual(name = "Coefficient",labels = c('Negetive','Postive'),values = c("blue","red"))
圖片.png

方式五:ggcorrplot

這個(gè)包的靈感來(lái)自corrplot包, 相比于ggplot2方式該函數(shù)該包對(duì)不太擅長(zhǎng)寫函數(shù)的同學(xué)很友好我們只需要利用包中的參數(shù)就可以實(shí)現(xiàn)重新排序相關(guān)矩陣的方法谦秧,而且能在相關(guān)圖上顯示顯著性水平竟纳。除此之外,該包還包括一個(gè)計(jì)算相關(guān)p值矩陣的函數(shù)疚鲤,總之使用起來(lái)還是十分方便的锥累。

安裝加載包

# 通過(guò)Cran安裝
install.packages("ggcorrplot")
# Github安裝最新版
if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/ggcorrplot")
# 加載
library(ggcorrplot)

可視化

默認(rèn)是方形

# method = "square" (默認(rèn))
ggcorrplot(cormat)
圖片.png

圓圈

ggcorrplot(cormat, method = "circle") 
圖片.png

重新排序相關(guān)性矩陣

# Reordering the correlation matrix
# --------------------------------
# 使用hclust層級(jí)聚類
ggcorrplot(cormat, hc.order = TRUE, outline.col = "white") # 使用order參數(shù)
圖片.png

只輸出上三角或者下三角矩陣的圖形

# 得到上三角
ggcorrplot(cormat, hc.order = TRUE, type = "upper",
     outline.col = "white")
# 得到下三角
ggcorrplot(cormat, hc.order = TRUE, type = "lower",
     outline.col = "white")

<img src="https://gitee.com/kai_kai_he/PicGo/raw/master/imgage/image-20201005222129696.png" alt="image-20201005222129696" style="zoom:50%;" />

自定義主題與顏色

ggcorrplot(cormat, hc.order = TRUE, type = "lower",
   outline.col = "white",
   ggtheme = ggplot2::theme_gray,
   colors = c("#6D9EC1", "white", "#E46726"))
圖片.png

顯示標(biāo)簽

ggcorrplot(cormat, hc.order = TRUE,
    type = "lower", p.mat = p.mat)
圖片.png

計(jì)算P值顯著性矩陣,并在圖中顯示

p.mat <- cor_pmat(mtcars)
head(p.mat[, 1:4])
##               mpg          cyl         disp           hp
## mpg  0.000000e+00 6.112687e-10 9.380327e-10 1.787835e-07
## cyl  6.112687e-10 0.000000e+00 1.803002e-12 3.477861e-09
## disp 9.380327e-10 1.803002e-12 0.000000e+00 7.142679e-08
## hp   1.787835e-07 3.477861e-09 7.142679e-08 0.000000e+00
## drat 1.776240e-05 8.244636e-06 5.282022e-06 9.988772e-03
## wt   1.293959e-10 1.217567e-07 1.222311e-11 4.145827e-05


ggcorrplot(cormat, hc.order = TRUE,
           type = "lower", p.mat = p.mat)  # 除非沒有顯著系數(shù)

圖片.png

除了將不顯著的相關(guān)系數(shù)標(biāo)記為×號(hào)集歇,也可以直接將其留白去除顏色桶略。

# 不顯著的系數(shù)留白
ggcorrplot(cormat, p.mat = p.mat, hc.order = TRUE,
    type = "lower", insig = "blank")
圖片.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诲宇,隨后出現(xiàn)的幾起案子际歼,更是在濱河造成了極大的恐慌,老刑警劉巖姑蓝,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹅心,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡纺荧,警方通過(guò)查閱死者的電腦和手機(jī)旭愧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宙暇,“玉大人输枯,你說(shuō)我怎么就攤上這事】透” “怎么了用押?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)靶剑。 經(jīng)常有香客問我蜻拨,道長(zhǎng)池充,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任缎讼,我火速辦了婚禮收夸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘血崭。我一直安慰自己卧惜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布夹纫。 她就那樣靜靜地躺著咽瓷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舰讹。 梳的紋絲不亂的頭發(fā)上茅姜,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音月匣,去河邊找鬼钻洒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛锄开,可吹牛的內(nèi)容都是我干的素标。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萍悴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼头遭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起退腥,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤任岸,失蹤者是張志新(化名)和其女友劉穎再榄,沒想到半個(gè)月后狡刘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡困鸥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年嗅蔬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疾就。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡澜术,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猬腰,到底是詐尸還是另有隱情鸟废,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布姑荷,位于F島的核電站盒延,受9級(jí)特大地震影響缩擂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜添寺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一胯盯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧计露,春花似錦博脑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至该押,卻和暖如春君账,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沈善。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工乡数, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闻牡。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓净赴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親罩润。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玖翅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355