ggplot -beginning

**********************************************

一、R之ggplot初体验 -- 柱状图

数据类型,表格数据名字new

/////////////////////////////////////////////////////////////

cultivars     TF_family     num_of_gene

IRAT109     MYB/MYB_related     8

IRAT109     WRKY     5

IRAT109     CO-like     3

IRAT109     DBB     3

IRAT109     ERF     3

IRAT109     bZIP     2

IRAT109     Dof     2

IRAT109     G2-like     2

IRAT109     HSF     2

IRAT109     bHLH     1

IRAT109     HD-ZIP     1

IRAT109     NAC     1

IRAT109     Trihelix     1

ZS97B     MYB/MYB_related     7

ZS97B     CO-like     6

ZS97B     HSF     4

ZS97B     ERF     4

ZS97B     WRKY     4

ZS97B     bHLH     3

ZS97B     DBB     2

ZS97B     NAC     1

ZS97B     Dof     1

ZS97B     G2-like     1

ZS97B     HD-ZIP     1

ZS97B     bZIP     1

ZS97B     Trihelix     1

////////////////////////////////////////////////////////////////

cmd:

.......................作图...........................

library(ggplot2)

library(gcookbook) ##为了使用数据

a<-read.table("new",header=T,sep="\t")

ggplot(a,aes(x=TF_family,y=num_of_gene,fill=cultivars))+geom_bar(position="dodge",stat="identity") #new数据集包含两个分类变量,cultivars和num_of_gene,分别将其映射到x和fill

★ 必须使用命令参数position="dodge"将两组条形在水平上分开,否则会输出堆积条形图

作出的图横坐标排序为数据集a在TF_family这个因素的因子水平排序,a$TF_family

..............改变因子水平顺序...................

library(reshape2)

b<-dcast(a,TF_family~cultivars) 取出后俩列数据,并以 TF_family为行名,cultivars为列名

////////////////////////////////////////////////////////////////

TF_family IRAT109 ZS97B

1  MYB/MYB_related       8     7

2          CO-like       3     6

3             WRKY       5     4

4              ERF       3     4

5              HSF       2     4

6              DBB       3     2

7             bHLH       1     3

8             bZIP       2     1

9              Dof       2     1

10         G2-like       2     1

11          HD-ZIP       1     1

12             NAC       1     1

13        Trihelix       1     1

///////////////////////////////////////////////////////////////

b$sum<-b$IRAT109+b$ZS97B ###增加一列因素,且为两品种对应TF家族的基因的和

b<-b[order(-b$sum),]    ##把b数据集的因子sum逆序排序 ****顺序排序b[order(-b$sum),]

a$TF_family<-factor(a$TF_family,levels=as.character(b$TF_family))  ###将数据集a的TF_family 因子水平按数据集b的TF_family因子水平排序  ★b$TF_family为因子水平,需转化字符

........................去背景.............................

p + theme_grey()   ##默认的灰色主题

p + theme_bw()     ##黑白主题

★ theme_set(theme_bw())  将theme_bw()设为默认主题

.......................隐藏横坐标标签......................

p + theme(axis.title.x=element_blank())

.......................修改图例...........................

p + theme(legend.position=" top")  ##指定的参数有top,left,right,bottom 顶部,左,右,底部

p + theme(legend.position=c(.85,.2)) + themme(legend.background = element_rect(fill = "white",colour = "black")) ###添加一个不透明的边界使其与图形分开

p + theme(legend.position=c(1,0),legend.justification=c(1,0))  ###legend.position设置图例坐标,(0,0)原点,左下角,(1,1)右上角 ;legend.justification用来指定图例框的那一部分被放到给定坐标处

p + scale_fill_discrete(limits("t1","t2","t3"))  ###修改图例顺序

p + guides(fill=guide_legend(reverse=TRUE))   ###反转图例的顺序

p + labs(fill = "condition")  ### 修改图例标题为condition

p + guides(fill=guide_legend(title = NULL))  ###移除图例标题

p + scale_fill_discrete(labels = c("a","b","c"))  ###修改图例标签为a,b,c

......................去网格线.............................

p + theme(panel.grid.major = element_blank(),pane1.grid.minor = element_blank())

p + theme(panel.grid.major = element_blank.x(),pane1.grid.minor.x = element_blank())  ###隐藏纵向的网格线 -- 与x轴交汇

p + theme(panel.grid.major = element_blank.y(),pane1.grid.minor.y = element_blank())

p + theme(panel.grid.major=element_line(colour=NA))

..................倾斜横坐标标签..........................

p+theme(axis.text.x  = element_text(angle=90, hjust=1)) ###element_text()是存储文字属性的函数,其内置属性如下:

@@@  family:字体

@@@  face:粗体、斜体等

@@@  size:字体大小

@@@  angle:倾斜角度

@@@  color:颜色

@@@  hjust和vjust  ###标签靠近或远离坐标轴,标签偏移正对刻度位置多少

2、修改字体

其实就算知道可以用theme_text()修改属性,要改起来也是麻烦的事情,因为不知道内置属性的关键字有哪些。比如改字体,直接用"family="宋体""是不会改不了字体的。要提前设置一下字体:

初始化 windowsFonts(myFont1=windowsFont("Times New Roman"),myFont2=windowsFont("华文行楷"))

然后才可以用family来修改字体  Family="myfont1"

3、修改字体粗细

Face可以设置的属性有以下几个:

plain:普通

italic:斜体

bold:粗体

bold.italic:粗体+斜体

4、修改尺寸大小

这个比较简单,用数字代表字体大小即可,普通的字体可以设置为size=8。

5、修改角度

这个也比较简单,用数字代表角度大小,比如上图的angle=45,表示字体逆时针倾斜45°。范围是0-360。

7、修改颜色

用color或者colour都可以修改颜色,颜色用关键字来表示,或者用十六进制的颜色代码来表示。当然最简单的是用关键字来表示颜色,简单明白清楚,但是您可能会发现很难找到ggplot2可以设置的颜色单词。还好经过一番google,找到下图,以后设置颜色不用担心了,有参考了:

8、修改位置

修改位置用下面的参数:

hjust:调整横向位置

vjust:调整纵向位置

vjust=1

上面都设置数字,一般调整0.5左右,可以是负值。

...................设置坐标刻度域值...................

p + scale_y_continuous(limits = c(0,10))  ###将y轴的值域设置为0-10,也可设置为变量因素的最大值 max(a$num_of_gene)

p + ylim(0,10)  ##等价于上一条

p + scale_y_continuous(limits = c(0,10),breaks = c (0,2,4,6,8,10)) ##breaks仅在scale_y_continuous()中管用,设置分度 breaks=seq(0,1,0.1))

p +  coord_fixed(ratio = 1/2)   ###按比例缩放x与y轴,

..................将Y轴的0刻度与x轴相交,不再延伸.....

scale_y_continuous(expand=c(0,0.01))  ##与上一条一起使用,不然对y轴的设置会重置

..................去外框线.............................

p + theme(panel.border = element_blank())  ###去掉外框线

p + theme(axis.line.y = element_line(colour = "black"),axis.line.x = element_line(colour = "black"))  ###加坐标

..................去坐标轴刻度.............................

p + theme(axis.ticks=element_blank(),axis.text.y=element_blank(),axis.text.x=element_blank())

....................柱子显示数值.............................

geom_text(aes(label = num),vjust=-1.5)   ##label=变量 显示需要显示的值,vjust 调整距离

................加标题,居中.........................................

 p + labs(title="1"  ) +theme(plot.title = element_text(hjust=0.5))  

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容