【r<-高級(jí)|實(shí)戰(zhàn)|繪圖】ggplot2高級(jí)繪圖

以三個(gè)數(shù)據(jù)集解釋ggplot2的使用氓栈。第一個(gè)是lattice包中的singer數(shù)據(jù)集渣磷,它包括紐約合唱團(tuán)歌手的高度和語(yǔ)音變量。第二個(gè)是mtcars數(shù)據(jù)集颤绕,它包含32輛汽車(chē)的詳細(xì)信息幸海。最后一個(gè)是car包中的Salaries數(shù)據(jù)集,它包含大學(xué)教授的收入信息奥务,并用來(lái)探索性別差異對(duì)它們收入的影響。這些數(shù)據(jù)集提供了各種可視化的挑戰(zhàn)袜硫。

ggplot2包介紹

在ggplot2中氯葬,圖是采用串聯(lián)起來(lái)(+)號(hào)函數(shù)創(chuàng)建的。每個(gè)函數(shù)修改屬于自己的部分婉陷。也就是說(shuō)帚称,每個(gè)函數(shù)完成圖中各個(gè)組件的相應(yīng)功能官研,然后通過(guò)串聯(lián)+號(hào)將其連接起來(lái),形成一個(gè)完整的圖形闯睹。

> library(ggplot2)
> ggplot(data=mtcars, aes(x=wt, y=mpg)) + 
+       geom_point() + 
+       labs(title="Automobie Data", x="Weight", y="Miles Per Gallon")
Scatter Plot between weight and miles of Cars.png

分解上述圖形的制作步驟:

? ggplot()初始化圖形并指定要用到的數(shù)據(jù)來(lái)源和變量戏羽。aes()函數(shù)的功能是指定每個(gè)變量扮演的角色(aes代表aesthetics,即如何用視覺(jué)形式呈現(xiàn)信息)楼吃。在這里始花,變量wt的值映射到x軸,mpg的值映射到y(tǒng)軸孩锡。

? ggplot函數(shù)設(shè)置圖形但沒(méi)有自己的視覺(jué)輸出酷宵。使用一個(gè)或多個(gè)幾何函數(shù)向圖中添加了幾何對(duì)象(簡(jiǎn)寫(xiě)為geom),包括點(diǎn)躬窜、線浇垦、條、箱線圖和陰影區(qū)域荣挨。在上述例子中男韧,geom_point()函數(shù)在圖形中畫(huà)點(diǎn),創(chuàng)建了一個(gè)散點(diǎn)圖默垄。labs()函數(shù)是可選的此虑,可以添加注釋、軸標(biāo)簽厕倍、標(biāo)題等寡壮。

ggplot2中有很多函數(shù),并且大多數(shù)包含可選的參數(shù)讹弯。下面我們來(lái)看一下相應(yīng)擴(kuò)展况既。

> png('Scatter plot 2.png')
> ggplot(data=mtcars, aes(x=wt, y=mpg)) + 
+     geom_point(pch=17, color='blue', size=2) +
+     geom_smooth(method='lm', color='red', linetype=2) + 
+     labs(title="Automobile Data", x="Weight", y="Miles Per Gallon")
> dev.off()

![Uploading Automobile Data by Engine Type_988673.png . . .]

Scatter plot 2.png

我們依據(jù)對(duì)最初圖形的解釋?zhuān)梢院芮逦挠^察到不同的函數(shù)執(zhí)行了什么樣的功能。

ggplot2包提供了分組和小面化的方法组民。分組指的是在一個(gè)圖形中顯示兩組或多組觀察結(jié)果棒仍。小面化指的是在單獨(dú)、并排的圖形上顯示觀察組臭胜。需要注意莫其,ggplot2包在定義組或面時(shí)使用因子。

這里我們使用mtcars數(shù)據(jù)集查看分組和面耸三,并進(jìn)行繪圖乱陡。

Automobile Data by Engine Type.png
# 將變量轉(zhuǎn)換為因子
mtcars$am <- factor(mtcars$am, levels=c(0,1), labels=c("Automatic", "Manual"))
mtcars$vs <- factor(mtcars$vs, levels=c(0,1), labels=c("V-Engine", "Straight Engine"))
mtcars$cyl <- factor(mtcars$cyl)

library(ggplot2)
# 繪圖
ggplot(data=mtcars, aes(x=hp, y=mpg, shape=cyl, color=cyl)) + 
    geom_point(size=3) +
    facet_grid(am~vs) +
    labs(title="Automobile Data by Engine Type", x="Horsepower", y="Miles Per Gallon")

在本例中,amvs是刻度變量仪壮,cyl是分組變量憨颠。

用幾何函數(shù)指定圖的類(lèi)型

ggplot()函數(shù)指定要繪制的數(shù)據(jù)源和變量,幾何函數(shù)則指定這些變量如何在視覺(jué)上進(jìn)行表示。目前爽彤,有37個(gè)幾何函數(shù)可供使用养盗。以下列出常用的函數(shù)。

函數(shù) 添加 選項(xiàng)
geom_bar() 條形圖 color, fill, alpha
geom_boxplot() 箱線圖 color, fill, alpha, notch, width
geom_density() 密度圖 color, fill, alpha, linetype
geom_histogram() 直方圖 color, fill, alpha, linetype, binwidth
geom_hline() 水平線 color, aplha, linetype, size
geom_jitter() 抖動(dòng)點(diǎn) color, size, alpha, shape
geom_line() 線圖 colorvalpha, linetype, size
geom_point() 散點(diǎn)圖 color, alpha, shape, size
geom_rug() 地毯圖 color, sides
geom_smooth() 擬合曲線 method, formula, color, fill, linetype, size
geom_text() 文字注解 這個(gè)非常多,參考相應(yīng)文檔
geom_violin() 小提琴圖 color, fill, alpha, linetype
geom_vline() 垂線 color, alpha, linetype, size

關(guān)于幾何函數(shù)的常見(jiàn)選項(xiàng)

選項(xiàng) 詳述
color 對(duì)點(diǎn)适篙、線和填充區(qū)域的邊界進(jìn)行著色
fill 對(duì)填充區(qū)域著色往核,如條形和密度區(qū)域
alpha 顏色的透明度,從0(完全透明)到1(不透明)
linetype 圖案的線條(1=實(shí)線嚷节,2=虛線聂儒,3=點(diǎn),4=點(diǎn)破折號(hào)丹喻,5=長(zhǎng)破折號(hào)薄货,6=雙破折號(hào))
size 點(diǎn)的尺寸和線的寬度
shape 點(diǎn)的形狀(和pch一樣,0=開(kāi)放的方形碍论,1=開(kāi)放的圓形谅猾,2=開(kāi)放的三角形,等等)
position 繪制諸如條形圖和點(diǎn)等對(duì)象的位置鳍悠。對(duì)條形圖來(lái)說(shuō)税娜,'dodge'將分組條形圖并排,'stacked'堆疊分組條形圖藏研,'fill'垂直地堆疊分組條形圖并規(guī)范其高度相等敬矩。對(duì)于點(diǎn)來(lái)說(shuō),'jitter'減少點(diǎn)重疊蠢挡。
binwidth 直方圖的寬度
notch 表示方塊圖是否應(yīng)為缺口(TRUE/FALSE)
sides 地毯圖的安置("b"=底部弧岳, "l"=左部,"t"=頂部业踏,"r"=右部禽炬,"bl"=左下部,等等)
width 箱線圖的寬度

下面舉個(gè)例子來(lái)驗(yàn)證一下以上參數(shù)的使用:

data(Salaries, package='car')
library(ggplot2)
ggplot(Salaries, aes(x=rank, y=salary)) +
        geom_boxplot(fill="cornflowerblue",
                     color="black", notch = TRUE) +
        geom_point(position='jitter', color='blue', alpha=0.5) + 
        geom_rug(sides='l', color='black')
Salaries by Rank.png

該圖顯示了不同學(xué)術(shù)地位對(duì)應(yīng)薪水的缺口箱線圖勤家。實(shí)際的觀察值(教師)是重疊的腹尖,因而給予一定的透明度以避免遮擋箱線圖。它們還抖動(dòng)以減少重疊伐脖。最后热幔,一個(gè)地毯圖設(shè)置在左側(cè)以指示薪水的一般擴(kuò)散。

當(dāng)幾何函數(shù)組合形成新類(lèi)型的圖時(shí)讼庇,ggplot2包的真正力量就會(huì)得到展示绎巨,讓我們利用singer數(shù)據(jù)集再來(lái)一探究竟。

library(ggplot2)
data(singer, package = "lattice")
ggplot(singer, aes(x=voice.part, y=height)) +
        geom_violin(fill="lightblue") + 
        geom_boxplot(fill="lightgreen", width=.2)
singer_combine_fig.png

箱線圖展示了在singer數(shù)據(jù)框中每個(gè)音部的25%,50%,75%分位數(shù)得分和任意的異常值蠕啄。對(duì)于每個(gè)聲部身高范圍上的得分分布认烁,小提琴圖展示了更多視覺(jué)線索。

接下來(lái)我們將使用幾何函數(shù)創(chuàng)建廣泛的圖表類(lèi)型介汹。讓我們從分組開(kāi)始吧——在一個(gè)圖中展示多個(gè)分組觀察值却嗡。

分組

在R中,組通常用分類(lèi)變量的水平(因子)來(lái)定義嘹承。

分組是通過(guò)ggplot2圖將一個(gè)或多個(gè)帶有諸如顏色窗价、形狀、填充叹卷、尺寸和線條類(lèi)型的視覺(jué)特征的分組變量來(lái)完成的撼港。ggplot()聲明中的aes()函數(shù)負(fù)責(zé)分配變量(圖形的視覺(jué)特征)。

我們依舊以Salaries數(shù)據(jù)集來(lái)進(jìn)行相關(guān)探索骤竹。

首先帝牡,查看薪水是如何隨學(xué)術(shù)等級(jí)變化的:

data(Salaries, package='car')
library(ggplot2)
ggplot(data=Salaries, aes(x=salary, fill=rank)) + 
        geom_density(alpha=.3)
Salaries density by Rank.png

接下來(lái),我們通過(guò)性別和學(xué)術(shù)等級(jí)分組蒙揣,繪制獲得博士學(xué)位年數(shù)和薪水的關(guān)系:

ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank, shape=sex)) +
        geom_point()
Salaries by phd.png

最后靶溜,我們可以用一個(gè)分組的條形圖按學(xué)術(shù)等級(jí)和性別來(lái)可視化教授的人數(shù)(三種條形圖方式):

Number by Rank1.png
Number by Rank2.png
Number by Rank3.png

值得注意的是,第三個(gè)圖形中y軸的標(biāo)簽是錯(cuò)誤的懒震,它應(yīng)該是比例而不是數(shù)量罩息。我們可以通過(guò)添加y="proportion"參數(shù)到labs()函數(shù)來(lái)解決。

選項(xiàng)可以通過(guò)不同的方式使用个扰,這取決于它們發(fā)生在aes()函數(shù)的內(nèi)部還是外部瓷炮。通常來(lái)說(shuō),變量應(yīng)該設(shè)在aes()函數(shù)內(nèi)递宅,分配常數(shù)應(yīng)該在aes()函數(shù)外娘香。

刻面

如果組在圖中并排出現(xiàn)而不是重疊為單一的圖形,關(guān)系就是清晰的办龄。我們可以使用facet_wrap()函數(shù)和facet_grid()函數(shù)創(chuàng)建網(wǎng)格圖形(在ggplot2中也稱(chēng)為刻面圖)烘绽。下表給出了相關(guān)的語(yǔ)法,var,rowvar,colvar是因子土榴。

語(yǔ)法 結(jié)果
facet_wrap(~var, ncol=n) 將每個(gè)var水平排列成n列的獨(dú)立圖
facet_wrap(~var, nrow=n) 排成n行獨(dú)立圖
facet_grid(rowvar~colvar) rowvar和colvar組合的獨(dú)立圖
facet_grid(rowvar~.) 每個(gè)rowvar水平的獨(dú)立圖诀姚,配置成一個(gè)單列
facet_grid(.~colvar) 每個(gè)colvar水平的獨(dú)立圖,配置成單行

3個(gè)例子

data(singer, package = 'lattice')
library(ggplot2)
ggplot(data=singer, aes(x=height)) + 
        geom_histogram() +
        facet_wrap(~voice.part, nrow=4)

ggplot(data=singer, aes(x=height)) + 
        geom_density() +
        facet_grid(voice.part~., nrow=4)


data(Salaries, package='car')
library(ggplot2)
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank, shape=rank))+
        geom_point() + facet_grid(.~sex)

添加光滑曲線

這一部分我們著重分析一下添加平滑曲線到散點(diǎn)圖的方法玷禽。

我們可以使用geom_smooth()函數(shù)來(lái)添加一系列的平滑曲線和置信區(qū)域赫段。函數(shù)的參數(shù)參考下表:

選項(xiàng) 描述
method= 使用的平滑函數(shù)。允許的值包括lm, glm, smooth, rlm, glm,分別對(duì)應(yīng)線性矢赁、廣義線性糯笙、loess、健壯線和廣義相加模型撩银。smooth是默認(rèn)值
formula= 在光滑函數(shù)中使用的公式给涕。例子包括y~x, y~log(x), y~poly(x,n), y~ns(x)
se 繪制置信區(qū)間(TRUE/FALSE)默認(rèn)為T(mén)RUE
level 使用的置信區(qū)間水平(默認(rèn)為95%)
fullrange 指定擬合應(yīng)涵蓋全圖(TRUE),或僅僅是數(shù)據(jù)(FALSE)。默認(rèn)為FALSE

使用Salaries數(shù)據(jù)集恭应,忽略性別和學(xué)術(shù)等級(jí),我們先檢驗(yàn)博士畢業(yè)年數(shù)和薪水之間的關(guān)系耘眨。

data(Salaries, package='car')
library(ggplot2)
ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary)) +
        geom_smooth() + geom_point()
Salaries by yrs.png

統(tǒng)計(jì)函數(shù)

? ggplot2包中含有大量統(tǒng)計(jì)函數(shù)來(lái)計(jì)算所需的量昼榛,從而生產(chǎn)更多的可視化數(shù)據(jù)。通常情況下剔难,幾何函數(shù)隱式地調(diào)用統(tǒng)計(jì)函數(shù)胆屿,我們不需要直接處理這些問(wèn)題。不過(guò)指導(dǎo)它們的存在是有用的偶宫。

修改ggplot2圖形的外觀

R的基礎(chǔ)繪圖中,使用par()函數(shù)或特定的畫(huà)圖函數(shù)的圖形參數(shù)來(lái)自定義基本函數(shù)非迹。遺憾的是,這些對(duì)ggplot2圖形沒(méi)有影響纯趋,該包提供了特定了函數(shù)來(lái)改變其圖形的外觀憎兽。

坐標(biāo)軸

ggplot2包會(huì)自動(dòng)生成基本所需要的圖形參數(shù)。當(dāng)我們需要更大程度定制時(shí)结闸,需要了解相應(yīng)函數(shù)的用法唇兑。我們已經(jīng)知道labs()函數(shù)可以用來(lái)添加標(biāo)題并改變坐標(biāo)軸標(biāo)簽,讓我們?cè)倏纯雌渌挠杏煤瘮?shù):

函數(shù) 選項(xiàng)
scale_x_continuous()和scale_y_continuous() breaks=指定刻度標(biāo)記桦锄、labels=指定刻度標(biāo)記標(biāo)簽扎附、limits=控制要展示的值的范圍
scale_x_discrete()和scale_y_discrete() breaks=對(duì)因子的水平進(jìn)行放置和排序,labels=指定這些水平的標(biāo)簽结耀,limits=表示哪些水平應(yīng)該展示
coord_filp() 顛倒x軸和y軸

我們將這些函數(shù)應(yīng)用一個(gè)分組箱線圖中留夜,其中包含按學(xué)術(shù)等級(jí)和性別分組的薪資水平,代碼如下:

data(Salaries, package='car')
library(ggplot2)
ggplot(data=Salaries, aes(x=rank, y=salary, fill=sex)) +
    geom_boxplot() +
    scale_x_discrete(breaks=c('AsstProf', 'AssocProf', 'Prof'),
                     labels=c('Assistant\nProfessor',
                              "Associate\nProfessor",
                              "Full\nProfessor")) + 
    scale_y_continuous(breaks = c(50000, 100000, 150000, 200000),
                       labels=c('$50K','$100K','$150K','$200K')) + 
    labs(title="Faculty Salary by Rank and Sex", x='', y='')
Faculty Salary by Rank and Sex.png

圖例

圖例是指如何用顏色图甜、形狀碍粥、尺寸等視覺(jué)特征表示數(shù)據(jù)特征的指南。標(biāo)題和位置是最常用的定制特征黑毅。

當(dāng)更改圖例的標(biāo)題時(shí)嚼摩,必須綜合考慮顏色、填充矿瘦、尺寸等等枕面。可以通過(guò)fill="mytitle"加到labs()函數(shù)中來(lái)改變標(biāo)題缚去。

標(biāo)題的位置由theme()函數(shù)中的legen.position選項(xiàng)控制潮秘。可能的值包括left, top, right(默認(rèn)), bottom易结。我們也可以在圖中給定的位置指定一個(gè)二元素向量枕荞。

使用添加修改上一個(gè)圖的代碼對(duì)圖形展示效果進(jìn)行修改:

    labs(title="Faculty Salary by Rank and Sex", x='', y='',fill='Gender')
    theme(legend.position=c(.1,.8)) # 圖例的左上角分別距離左側(cè)邊緣10%柜候,底部邊緣80%

標(biāo)尺

ggplot2包使用標(biāo)尺把數(shù)據(jù)空間的觀察值映射到可視化的空間中。標(biāo)尺可以連續(xù)也可以離散躏精。

在ggplot2中標(biāo)尺的概念很普遍渣刷,可以通過(guò)查看以scale_開(kāi)頭的函數(shù)來(lái)了解更多信息。

主題

主題可以讓我們控制這些圖的整體外觀玉控。theme()函數(shù)中的選項(xiàng)可以讓我們調(diào)整字體飞主、背景、顏色和網(wǎng)格線等高诺。主題可以使用一次,也可以保存起來(lái)應(yīng)用到多個(gè)圖中碾篡。嘗試探索以下代碼:

data(Salaries, package = 'car')
library(ggplot2)
mytheme <- theme(plot.title=element_text(face="bold.italic",
                                         size = "14", color = "brown"),
                 axis.title=element_text(face="bold.italic", size=10,
                                         color="brown"),
                 axis.text=element_text(face="bold", size=9,
                                        color="darkblue"),
                 panel.background = element_rect(fill="white",
                                                 color="darkblue"),
                 panel.grid.major.y=element_line(color="grey",
                                                 linetype = 2),
                 panel.grid.minor.y=element_line(color="grey",
                                                 linetype=2),
                 panel.grid.minor.x=element_blank(),
                 legend.position = "top")

ggplot(Salaries, aes(x=rank,y=salary,fill=sex)) +
        geom_boxplot() + 
        labs(title="Salary by Rank and Sex", x="Rank", y="Salary") +
        mytheme
mytheme.png

多重圖

? 基礎(chǔ)繪圖中虱而,我們使用圖形參數(shù)mfrow和基本函數(shù)layout()把兩個(gè)或多個(gè)基本圖放到單個(gè)圖中,同樣开泽,這種方法在ggplot2中不適用牡拇。將多個(gè)ggplot2包的圖形放到單個(gè)圖形中最簡(jiǎn)單的方式是使用gridExtra包中的grid.arrange()函數(shù)。我們需要事先安裝這個(gè)包穆律。

讓我們創(chuàng)建3個(gè)ggplot2圖并把它放在單個(gè)圖形中惠呼。

data(Salaries, package = 'car')
library(ggplot2)
p1 <- ggplot(data=Salaries, aes(x=rank)) + geom_bar()
p2 <- ggplot(data=Salaries, aes(x=sex)) + geom_bar()
p3 <- ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary)) + geom_point()

library(gridExtra)
grid.arrange(p1,p2,p3,ncol=3)
multiple pic.png

注意截面圖(刻面圖)和多重圖的區(qū)別。

保存圖形

可以使用標(biāo)準(zhǔn)方法來(lái)保存創(chuàng)建的圖形峦耘,也可以使用ggsave()函數(shù)更方便保存它們剔蹋。它的選項(xiàng)包括保存哪幅圖形,保存在哪里和以什么形式保存辅髓。例如

myplot <- ggplot(data=mtcars, aes(x=mpg)) + geom_histogram()
ggsave(file="mygraph.png",plot=myplot,width=5,height=4)

myplot保存為5英寸X4英寸PNG格式泣崩。我們可以通過(guò)設(shè)置文件拓展名為ps, tex, jpeg, pdf, tiff, png, bmp, svg, wmf來(lái)保存為不同格式。

如果忽略plot=選項(xiàng)洛口,最近創(chuàng)建的圖形會(huì)被保存矫付。更多細(xì)節(jié)參考help(ggsave)

參考:R實(shí)戰(zhàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末第焰,一起剝皮案震驚了整個(gè)濱河市买优,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挺举,老刑警劉巖杀赢,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異豹悬,居然都是意外死亡葵陵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)瞻佛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脱篙,“玉大人娇钱,你說(shuō)我怎么就攤上這事“砝В” “怎么了文搂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)秤朗。 經(jīng)常有香客問(wèn)我煤蹭,道長(zhǎng),這世上最難降的妖魔是什么取视? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任硝皂,我火速辦了婚禮,結(jié)果婚禮上作谭,老公的妹妹穿的比我還像新娘稽物。我一直安慰自己,他們只是感情好折欠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布贝或。 她就那樣靜靜地躺著,像睡著了一般锐秦。 火紅的嫁衣襯著肌膚如雪咪奖。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天酱床,我揣著相機(jī)與錄音羊赵,去河邊找鬼。 笑死斤葱,一個(gè)胖子當(dāng)著我的面吹牛慷垮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揍堕,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼料身,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了衩茸?” 一聲冷哼從身側(cè)響起芹血,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楞慈,沒(méi)想到半個(gè)月后幔烛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囊蓝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年饿悬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聚霜。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狡恬,死狀恐怖珠叔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弟劲,我是刑警寧澤祷安,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站兔乞,受9級(jí)特大地震影響汇鞭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庸追,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一霍骄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锚国,春花似錦腕巡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)煎楣。三九已至豺总,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間择懂,已是汗流浹背喻喳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留困曙,地道東北人表伦。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像慷丽,于是被迫代替她去往敵國(guó)和親蹦哼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 簡(jiǎn)介 文章較長(zhǎng)要糊,點(diǎn)擊直達(dá)我的博客纲熏,瀏覽效果更好。本文內(nèi)容基本是來(lái)源于STHDA锄俄,這是一份十分詳細(xì)的ggplot2使...
    taoyan閱讀 51,111評(píng)論 7 159
  • 【感恩有你】20170717學(xué)習(xí)力踐行記錄D63 學(xué)習(xí):復(fù)聽(tīng)學(xué)習(xí)力第一課節(jié)父母教練修心營(yíng)40分鐘局劲,《孩子是如何學(xué)習(xí)...
    恩恩媽閱讀 179評(píng)論 0 0
  • 1、盤(pán)面一覽 周二大盤(pán)小幅低開(kāi)后就開(kāi)始震蕩走弱奶赠,失守了10日均線鱼填,以消費(fèi)(釀酒、保險(xiǎn)毅戈、維生素苹丸、家用電器等)和...
    阿凱古閱讀 380評(píng)論 0 2
  • 當(dāng)我們的iOS應(yīng)用集成了友盟的bug搜集sdk愤惰,應(yīng)用上線后如果出現(xiàn)崩潰,崩潰日志將會(huì)被下來(lái)谈跛,通常我們可以很輕松的得...
    007Mango閱讀 3,991評(píng)論 1 1