相关疑难解决方法(0)

如何在ggplot2的右侧放置转换后的比例?

我正在创建一个图表,显示湖水位随时间的变化.我在下面附上了一个简单的例子.我想在图的右侧添加一个刻度(刻度线和注释),以英尺为单位显示高程.我知道ggplot2不会允许两个不同的比例(参见2 y轴的绘图,左边的一个y轴,右边的另一个y轴),但因为这是相同比例的转换,有没有办法做这个?我更喜欢继续使用ggplot2而不必恢复到plot()函数.

library(ggplot2)
LakeLevels<-data.frame(Day=c(1:365),Elevation=sin(seq(0,2*pi,2*pi/364))*10+100)
p <- ggplot(data=LakeLevels) + geom_line(aes(x=Day,y=Elevation)) + 
  scale_y_continuous(name="Elevation (m)",limits=c(75,125)) 
p
Run Code Online (Sandbox Code Playgroud)

r ggplot2

19
推荐指数
2
解决办法
2万
查看次数

用grid和gtable拆解ggplot

我正在努力建立一个基于ggplot物体的双轴绘图.在巴蒂斯特的建议下,我将问题分解为更小的部分.目前的问题是:

  1. 如何grobs在保持轴,轴标签,轴刻度线和网格线的同时从中删除所有数据?"数据"是指与geom_line()和相关的数据geom_points().

想要这样做的原因是,在构建双轴绘图的过程中,我遇到了以下问题:来自一个grob的网格线将覆盖来自另一个grob的数据.通过删除数据线和点,将不会覆盖.

让我说清楚:我确实有一些解决方法,包括向aes()添加线型并设置scale_linetype_manual(values = c("solid","blank"),或者,将数据"从网格中发送",但是我想对一个未经过"修饰"的绘图对象进行后期处理,以达到目的.

下面是一些代码和数字.

# Data
df <- structure(list(Year = c(1950, 2013, 1950, 2013), Country = structure(c(1L, 
1L, 2L, 2L), .Label = c("France", "United States"), class = "factor"), 
Category = c("Hourly minimum wage", "Hourly minimum wage", 
"Hourly minimum wage", "Hourly minimum wage"), value = c(2.14, 
9.43, 3.84, 7.25), variable = c("France (2013 euros)", 
"France (2013 euros)", "United States (2013 dollars)", "United States (2013 dollars)"
), Unit = c("2013 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gtable r-grid

2
推荐指数
1
解决办法
1452
查看次数

标签 统计

ggplot2 ×2

r ×2

gtable ×1

r-grid ×1