ggplot系列2-更多画图细节——坐标轴和图例

ggplot更多画图细节——坐标轴和图例

Date: 2013.10.5
Author: duqi.yc@taobao.com


1、不同Data Set数据在同一图中展示

假设x 是包含419096_1006这个PID的各个效果指标数据,y是包含419253_1006的各个效果指标数据,如果让两个pid的同一个指标click画在同一个图中展示,如下:
p <- ggplot()
p
+ geom_line(data = x,aes(x = dt,y = click,colour = "419096_1006"))
+ geom_line(data = y,aes(x = dt,y = click,colour ="419253_1006")) + scale_colour_manual("PID",values = c("419096_1006" = "red","419253_1006" = "blue"))
+ scale_x_date(limits = as.Date(c("2012-10-01","2013-09-24")),labels = date_format("%m-%d")) # 调整横坐标时间显示
+ scale_y_continuous(labels = comma) # 调整y坐标显示 


特别注意:qplot不能实现不同数据集数据在同一个图中展示,除非分面。


2、调整X,Y和标题的字体外观等

简单画出click随时间的变化图,如下:
p + geom_line(aes(y = click)) + labs(title = "this is a test",x = "date",y = "click") # 标题="this is a test" ,x = date, y = click  

修改上图的标题,XY轴的外观,如下:
> last_plot() #上面画的图+ theme(plot.title = element_text(size=20,colour = "blue",face = "bold"),axis.title.x = element_text(size=15,colour = "black",face = "bold"),axis.text.y = element_text(colour = "red"),axis.line = element_line(colour = "red",size = 5),panel.grid.major = element_line(colour="red"))# 标题设置为"大小20,蓝色,加粗;X标题设置为"大小15,黑色,加粗",Y的标签设置为"红色" 


上图中,为了明显区分XY的标题和标签设置,所以单独设置了axis.title.x和axis.text.y。当然,以此类推,也可以单独设置axis.title.y和axis.text.y,这样可以画更特别的图形。
另,上图还单独设置了坐标轴线(axis.line),以及背景网格线的颜色和大小(panel.grid.major)。相信有了这些单独的设置,可以满足大多数画图的需求。

特别注意:如果panel.grid.major 和panel.background = element_blank(),则会看到白底的图形。更多细节展示,见P152。


3、迭代和绘图模板

上图绘制中使用了last_plot(),以及通过"+"一步步添加其他图层和修改坐标轴和图例,得到自己想要的图形。实际工作中,在没有完全了解数据展示情况下,首先绘制基础图形,然后通过"last_plot() + "一步步得到自己想要的图形,比如:
p <- ggplot() # 基础图形
last_plot() + geom_line(data = x,aes(dt,click,colour = "blue")) # 画x数据集中的click随dt变化趋势线
last_plot() + geom_line(data = y,aes(dt,click,colour = "red)) # 画y数据集中click随dt变化,跟x做一个对比
last_plot() + labs(title = "Campare of Y and X's click",xlab = "Date",ylab = "Click") # 添加标题和坐标轴标签
...

以此类推,一步步得到自己想要的图形。

另,在不停重复画图过程中,很多图形使用的标题和坐标轴选项,或者颜色面板的设置都是一样的,因此,我们可以制作一个绘图模板,一次制作,永久使用。 其实很简单,就是把常用的绘图的设置代码做个“封装”,何为封装?简单啦,qplot就是个封装的函数,我们也可以做任意的不同的封装,比如:
xquiet <- scale_x_continuous("",breaks = NULL)
yquiet <- scale_y_continuous("",breaks = NULL)
quiet <- xquiet + yquiet
p <- ggplot(data = x,aes(dt,click,colour = "blue")) + quiet

后续画其他图形的时候,如果涉及到scale_x和scale_y的设置编辑,都可以直接"+ quiet",这样在复杂图形绘制中省去了很多的麻烦。
每个人的审美观和使用习惯都不一样,所以自己可以定做个人绘图模板,以后就顺手拈来,不用每次都吭哧吭哧的去单独写代码。

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值