q1, 首先要確定是barplot還是hist,如果是barplot的話,應(yīng)該不存在breaks的問題,因?yàn)閎arplot的傳入?yún)?shù)是個(gè)矩陣;
10年建站經(jīng)驗(yàn), 成都網(wǎng)站制作、做網(wǎng)站客戶的見證與正確選擇。創(chuàng)新互聯(lián)提供完善的營銷型網(wǎng)頁建站明細(xì)報(bào)價(jià)表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。
我假設(shè)你要畫的是個(gè)hist,我偶遇過這個(gè)問題,我的理解是hist的breaks的值要能被范圍整除才行;比如x=1:200,break=7的話,就只能畫出4個(gè)柱來,但如果breaks=10就沒問題;基本上是這樣的,偶爾也有例外;比如break=5就不行....奇怪得很
最后,沒辦法的辦法,就只能用barplot代替hist了,barplot肯定不會(huì)有這個(gè)問題,統(tǒng)計(jì)下hist參數(shù)中的分布情況,轉(zhuǎn)換成矩陣,用barplot吧;
q2, 貌似一般都用一組因素把這些類別區(qū)分開,我用abcde,表示你的小學(xué),中學(xué)...了,比如這樣:
a=1:7;b=8:10;c=c(9,10,11);d=c(40,55);e=100:110f=factor(c(rep(1,sum(length(a),length(b),length(c))),rep(2,sum(length(d),length(e)))))#先用c()生成數(shù)組,在轉(zhuǎn)換成factor,其實(shí)數(shù)組也ok的,不過plot()中兩個(gè)數(shù)組和factor不一樣 x=c(a,b,c,d,e)plot(x~f)q3, 就我所知不行;yes或no一定也要是能映射到x,y范圍內(nèi)的點(diǎn)才行;你是想表示分類結(jié)果嗎?如果是的話,通常用顏色,或者在點(diǎn)旁邊的text表示。
q4, 舉個(gè)例子吧
x=-50:50y=x^2+x+1z=10*abs(x)+1 plot(x,y,type='l')lines(x,z,lty=3)legend(c('type1','type2'), x=-20,y=2500, col=c('black','red'), lty=c(1,3))legend的x和y是legend的左上角,匿名參數(shù)是類型名稱,col,lty,pch 是對應(yīng)的顏色,線類型,和點(diǎn)類型。
最后,我現(xiàn)在多用ggplot2,如果不抵觸的話可以看看,和R的基礎(chǔ)作圖包思路不是很一樣,但是圖很清新的;
如果還有問題,建議把數(shù)據(jù)集data.frame粘貼幾行上來,我也試試;
查看GOplot內(nèi)示例數(shù)據(jù)的格式,對自己的數(shù)據(jù)做處理
觀察結(jié)論:
觀察自己的兩個(gè)數(shù)據(jù)表:
table.legend 設(shè)置為T時(shí)會(huì)顯示表格
本圖中表格和圖例是出圖后剪切拼合而成,沒有用R中的拼圖包
R語言繪圖系列:
??在不確定將圖例添加在什么位置時(shí),可使用 locator函數(shù) 。
locator()函數(shù)可以定位圖上的點(diǎn)。運(yùn)行l(wèi)ocator函數(shù)之后在圖上隨便點(diǎn)一個(gè)點(diǎn),點(diǎn)擊finish就會(huì)返回剛剛那個(gè)點(diǎn)的位置坐標(biāo)。
使用text函數(shù)在每個(gè)條圖下面添加標(biāo)簽
設(shè)置氣泡透明度
??調(diào)色板函數(shù)中有個(gè)參數(shù)叫alpha,也可以設(shè)置氣泡的透明度。(在ggplot2中很容易實(shí)現(xiàn))
關(guān)于layout函數(shù):
前面我給大家詳細(xì)介紹過
?GO簡介及GO富集結(jié)果解讀
?四種GO富集柱形圖、氣泡圖解讀
?GO富集分析四種風(fēng)格展示結(jié)果—柱形圖,氣泡圖
?KEGG富集分析—柱形圖,氣泡圖,通路圖
? DAVID GO和KEGG富集分析及結(jié)果可視化
也用視頻給大家介紹過
? GO和KEGG富集分析視頻講解
最近有粉絲反映說,利用clusterProfiler這個(gè)包繪制GO富集分析氣泡圖和柱形圖的時(shí)候,發(fā)現(xiàn)GO條目的名字都重疊在一起了。
氣泡圖
柱形圖
這個(gè)圖別說美觀了,簡直不忍直視。經(jīng)過我的認(rèn)真研究,發(fā)現(xiàn)跟R版本有關(guān)。前面我給大家展示的基本都是R 3.6.3做出來的圖。很多粉絲可能用的都是最新版本的R 4.1.2。
我們知道R的版本在不停的更新,相應(yīng)的R包也在不停的更新。我把繪制氣泡圖和柱形圖相關(guān)的函數(shù)拿出來認(rèn)真的研究了一下,終于發(fā)現(xiàn)的癥結(jié)所在。
dotplot這個(gè)函數(shù),多了個(gè) label_format 參數(shù)
我們來看看這個(gè)參數(shù)究竟是干什么用的,看看參數(shù)說明
label_format :
a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters
原來這個(gè)參數(shù)默認(rèn)值是30,當(dāng)標(biāo)簽的長度大于30個(gè)字符就會(huì)被折疊,用多行來展示。既然問題找到了,我們就來調(diào)節(jié)一下這個(gè)參數(shù),把他設(shè)置成100,讓我們的標(biāo)簽可以一行展示。
是不是還是原來的配方,還是熟悉的味道
同樣的柱形圖,我們也能讓他恢復(fù)原來的容貌。
關(guān)于如何使用R做GO和KEGG富集分析,可參考下文
GO和KEGG富集分析視頻講解
R語言繪圖系列:
使用geom_label繪制標(biāo)簽散點(diǎn)圖
繪制點(diǎn),并通過nudge參數(shù)對標(biāo)簽進(jìn)行x軸和y軸上的平移
使用angle參數(shù)對標(biāo)簽角度進(jìn)行設(shè)置
geom_label可以使用fill對顏色進(jìn)行填充,fontface設(shè)置字體,geom_text不能填充顏色
parse參數(shù)意思是前面?zhèn)魅氲氖且粋€(gè)數(shù)學(xué)表達(dá)式,size定義標(biāo)簽相對大小。
畫一個(gè)散點(diǎn)圖
annotate函數(shù)傳入標(biāo)簽
添加矩形
添加短線段
2.1 guide_legend函數(shù)(主要參數(shù):color, shape, size)
圖例調(diào)整函數(shù)也屬于標(biāo)度函數(shù)的一類,但不可以直接使用加號(hào)來連接,必須放在函數(shù)中,作為一個(gè)參數(shù)。
guide_colorbar和guide_legend設(shè)置的是不同的圖例,guide_colorbar定義色條圖例,guide_legend定義普通圖例。
2.2 標(biāo)度函數(shù)scale
對于連續(xù)型變量,使用的參數(shù)是scale_xxx_continous(),對于分類型變量,使用的是scale_xxx_discrete()。
2.3:theme函數(shù)
在theme函數(shù)中,與圖例有關(guān)的主要參數(shù)有:
標(biāo)題主要有五種:主標(biāo)題,副標(biāo)題,角注,x軸標(biāo)簽和y軸標(biāo)簽
ggtitle()只能定義標(biāo)題和副標(biāo)題,默認(rèn)的位置在左上角。
R語言繪圖系列:
標(biāo)度控制著數(shù)據(jù)到圖形屬性的映射,標(biāo)度將我們的數(shù)據(jù)轉(zhuǎn)化為視覺上可以感知的東西,比如大小、位置、顏色、形狀等。標(biāo)度也為我們提供了讀圖時(shí)所使用的工具,比如說坐標(biāo)軸和圖例??偟膩碚f,可以稱為引導(dǎo)元素。標(biāo)度函數(shù)控制元素的屬性,可以理解為圖形的遙控器,可以用它來調(diào)整畫布大小、顏色等等。此前學(xué)的shape,color,size等參數(shù)和標(biāo)度函數(shù)相比顯得不夠靈活。
scale_fill_brewer 調(diào)色板函數(shù)
geom_errorbar()
geom_crossbar()
geom_linerange() 繪制線段
geom_pointrange() 繪制點(diǎn)
pointrange:點(diǎn)畫線
首先繪制一張盒形圖
在圖上顯示出觀測值
值得注意的是,圖上點(diǎn)的多少并不能完全反應(yīng)原始數(shù)據(jù)的多少,因?yàn)橛械狞c(diǎn)可能因?yàn)辄c(diǎn)過于密集就會(huì)被覆蓋,看起來是一個(gè)點(diǎn),其實(shí)可能是多個(gè)點(diǎn)。
因此可以使用geom_jitter函數(shù)將不同的點(diǎn)區(qū)分開(jitter是震蕩散點(diǎn)),width設(shè)置如果遇到相同的點(diǎn),點(diǎn)向左右方平移的距離。alpha設(shè)置透明度。
黑色點(diǎn)是離群點(diǎn)
還可以繪制卡槽圖
varwidth參數(shù)會(huì)根據(jù)該水平下觀測值的個(gè)數(shù)(n值)改變盒形圖的寬度。(這里寬度去的不是觀測個(gè)數(shù)的絕對值,而是平方根,以縮小差距。)
給盒子上色
分組盒形圖,用不同顏色區(qū)分
畫水平的盒形圖
使用coord_flip函數(shù)(坐標(biāo)軸翻轉(zhuǎn)函數(shù))
繪制一張直方圖
bins可以設(shè)置直方圖條柱的數(shù)目,默認(rèn)為30。當(dāng)bins和binwidth(設(shè)置條柱寬度)同時(shí)設(shè)置時(shí),默認(rèn)以binwidth為準(zhǔn)。
新加入變量cut,根據(jù)新變量在price水平上進(jìn)行一個(gè)計(jì)數(shù)
y軸由count變?yōu)閐ensity,繪制概率密度
注意下面density的寫法,前后都要加..
繪制概率密度曲線:geom_density函數(shù)
堆棧密度概率曲線
geom_line/geom_path/geom_step
繪制一個(gè)簡單的線圖
繪制點(diǎn)線圖,點(diǎn)和線需要分別添加。
如上圖,線在點(diǎn)之上,是因?yàn)橄韧渡淞它c(diǎn),又投射了線。
先投射線,點(diǎn)就出現(xiàn)在了線之上。
線的顏色出現(xiàn)了漸變
geom_smooth函數(shù):繪制擬合曲線
methods還有其他的方法,如glm:廣義線性模型;losses:純粹平滑;gam:廣義加性模型等等(lm和glm最常用)
geom_hline繪制水平線,geom_vline繪制垂直線。xintercept和yintercept是截距,slope是斜率。