您现在的位置:主页 > 数据可视化 > R数据可视化之ggplot2 (三)

R数据可视化之ggplot2 (三)

2017-06-19 15:48

u=2156138114,3697068155&fm=21&gp=0上一篇讲到了条形图的深加工,我们谈了几个参数,包括颜色,统计变换,位置摆放,透明度,标题,标尺,坐标轴刻度,图例等等,这些东西基本上就已经涵盖了GGPLOT2中的画图要素,接下来的画其他图形也是照本宣科,套用这些就可以啦.,具体感受让我们在实际画图中去感受.这一篇将会连续的讲几个图形类型.包括点图,线图,散点图.

1.线图

线图的基本操作在第一篇中已经讲到了,这里不做介绍,具体参看:http://www.ppvke.com/Blog/archives/30457

值得注意的第一个问题.当我们画线图时,若X轴为因子型,y轴为数值型时,我们一定要加group=这个参数,否则将会出错.1

23ggplot(BOD1, aes(x=Time, y=demand,group=1)) + geom_line()4

另外y坐标轴一般能包含数据集中y出现的所有数,但有时候,你希望Y轴是从0开始的,或者自己设定范围,我们可以用ylim=(0 ,10 )或者expan_limits(y=0)以下两行代码是等价的,

ggplot(BOD, aes(x=Time, y=demand)) + geom_line() + ylim(0, max(BOD$demand))
ggplot(BOD, aes(x=Time, y=demand)) + geom_line() + expand_limits(y=0)5 嗯嗯

2.点图.

基本操作也都介绍过,这里只介绍一个案例,如下

先看数据集

5

ggplot(tophit, aes(x=avg, y=name)) + geom_point()

6.0

新增这个theme_bw()底纹没了.这就是控制底纹的

ggplot(tophit, aes(x=avg, y=reorder(name, avg))) +
  geom_point(size=3) +theme_bw()

6

ggplot(tophit, aes(x=avg, y=reorder(name, avg))) +
  geom_point(size=3) +
  theme_bw() +
  theme(panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.major.y = element_line(colour="grey60", linetype="dashed"))

我们发现网格线竖着的没了panel.grid.major.x = element_blank(),,横着的变虚线了. panel.grid.major.y = element_line(colour="grey60", linetype="dashed"))

7ggplot(tophit, aes(x=reorder(name, avg), y=avg)) +
  geom_point(size=3) +
  theme_bw() +
  theme(axis.text.x = element_text(angle=60, hjust=1),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(colour="grey60", linetype="dashed"))

标签旋转60度,方便查看axis.text.x = element_text(angle=60, hjust=1)
8

ggplot(tophit, aes(x=avg, y=name)) +
  geom_segment(aes(yend=name), xend=0, colour="grey50") +
  geom_point(size=3, aes(colour=lg)) +
  scale_colour_brewer(palette="Set1", limits=c("NL","AL")) +
  theme_bw() +
  theme(panel.grid.major.y = element_blank(), 
        legend.position=c(1, 0.55), 
        legend.justification=c(1, 0.5))

垂线的效果geom_segment(aes(yend=name), xend=0, colour="grey50")9

 

3.对比作图,

有时一幅图里要画出两个变量来做对比,我们可以用fill=分类变量来用不同颜色代表笔筒的变量,或linetype=分类变量用不同线型来表示不同的变量,用shape=分类变量用不同的点型表示不同的变量,具体见下面:

先看数据:10

 

 

ggplot(tg, aes(x=factor(dose), y=length, colour=supp, group=supp)) + geom_line()11

 

ggplot(tg, aes(x=factor(dose), y=length, linetype=supp, group=supp)) + geom_line()12

 

当我们对上面所做的图颜色不满意时,我们想修改,可是colour参数 已经使用了.怎么办?这时我们便用到了scale使用scale_colour_manial( )便可自己修改颜色.

来看一个面积填充对比图,先看数据:13

 

ggplot(uspopage, aes(x=Year, y=Thousands, fill=AgeGroup)) + geom_area()14

这篇文章就先介绍到这里,其实我只是通过一个个例子来介绍一些功能,其中有很多参数设置,同样也适用于其他类型的作图,在大致了解所有的设置后,我们再来一个汇总,看看到底哪些图层可以使用哪些参数.也欢迎你继续关注.


未完待续,

PPV原创文章,严禁转载. (文:@白加黑治感冒)