Questions tagged «ggplot2»

ggplot2是Hadley Wickham根据“图形语法”的原则编写的,为R积极维护的开源图形绘图包。它部分替换了R的基本图和点阵包,同时提供了一个干净,强大,正交且有趣的API。

1
如何增加ggplot2图例中的点数?
我在一个图中有数千个点,并设置为“大小= 1”。但是,图例中的点数也减小了。如何增加图例中的磅值? 例如。 num <- 10000 set.seed(1) df <- data.frame(x = seq(1, num), y = runif(num), z = rep(1:2, each = num / 2)) df$z <- factor(df$z) library(ggplot2) p <- ggplot(df, aes(x, y, colour = z)) + geom_point(size = 1) p
75 r  ggplot2 

2
将颜色和形状的图例合并为一个图例
我正在使用2 x 2研究设计在ggplot中创建图,并希望使用2种颜色和2个符号对我的4种不同治疗组合进行分类。目前,我有2个图例,一个用于颜色,一个用于两种形状。我如何将它们组合成一个图例,所以我有一个蓝色圆圈,一个红色圆圈,一个蓝色三角形和一个读取三角形? 一些数据: state1 <- c(rep(c(rep("N", 7), rep("Y", 7)), 2)) year <- rep(c(2003:2009), 4) group1 <- c(rep("C", 14), rep("E", 14)) group2 <- paste(state1, group1, sep = "") beta <- c(0.16,0.15,0.08,0.08,0.18,0.48,0.14,0.19,0.00,0.00,0.04,0.08,0.27,0.03,0.11,0.12,0.09,0.09,0.10,0.19,0.16,0.00,0.11,0.07,0.08,0.09,0.19,0.10) lcl <- c(0.13,0.12,0.05,0.05,0.12,0.35,0.06,0.13,0.00,0.00,0.01,0.04,0.20,0.00,0.09,0.09,0.06,0.06,0.07,0.15,0.11,0.00,0.07,0.03,0.05,0.06,0.15,0.06) ucl <- c(0.20,0.20,0.13,0.14,0.27,0.61,0.28,0.27,0.00,1.00,0.16,0.16,0.36,0.82,0.14,0.15,0.13,0.13,0.15,0.23,0.21,0.00,0.15,0.14,0.12,0.12,0.23,0.16) data <- data.frame(state1,year,group1,group2,beta,lcl,ucl) 情节: library(ggplot2) pd <- position_dodge(.65) ggplot(data = data, aes(x = …
75 r  ggplot2 

2
为复杂的图构建手动图例
我无法弄清楚如何为此图手动设置图例。我真正想要的只是一个简单的图例,该图例使用三种颜色并在每种颜色旁边都有一个名称。 当前代码如下: a <-c("S1","S2","S3","S4","S5","S6","S7","S8","S9") #names b <-c(0.23,0.26,0.55,0.56,0.36,0.23,0.18,0.06,0.04) #mean t0 c <-c(0.64,0.6,0.81,1.4,0.89,0.55,0.48,0.22,0.09) #mean t1 d <-c(0.20,0.23,0.52,0.53,0.33,0.20,0.15,0.04,0.03) #SD low t0 e <-c(0.26,0.29,0.58,.59,0.39,0.26,0.21,0.08,0.05) #SD high t0 f <-c(0.67,0.63,0.86,1.44,0.93,0.59,0.51,0.25,0.10) #SD high t1 g <-c(0.61,0.57,0.78,1.36,0.85,0.53,0.45,0.19,0.08) #SD low t1 h <-c(0.41,0.34,0.26,0.84,0.53,0.32,0.30,0.16,0.05) #absolute change data <- data.frame(a,b,c,d,e,f,g,h) ggplot(data=data,aes(a)) + geom_bar(stat="identity", aes(y=h),fill="#62c76b",colour="#333333")+ #green geom_line(aes(y=b,group=1),size=1.0,colour="#f04546") + #red geom_point(aes(y=b),size=3, colour="#f04546") …

12
错误:ggplot2和data.table的包或名称空间加载失败
我无法打开安装ggp​​lot2和data.table软件包。它给我以下错误(ggplot2的示例) > library(ggplot2) Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : there is no package called ‘Rcpp’ Error: package or namespace load failed for ‘ggplot2’ 在关闭R会话之前,我能够使用这两个软件包正常工作。现在,每次我尝试运行它时,都会向我显示此错误。 我也曾尝试删除并重新安装它,但没有成功。 remove.packages(c("ggplot2", "data.table")) install.packages('ggplot2', dep = TRUE) install.packages('data.table', dep = TRUE) 我不知道怎么了
74 r  ggplot2  data.table 

1
使用ggplot()更改线条颜色
我使用的不是ggplot2,但是今天我想在某些图形上使用它。但我不知道如何手动控制颜色geom_line() 我确定我忽略了一些简单的事情,但这是我的测试代码: x <- c(1:20, 1:20) variable <- c(rep("y1", 20), rep("y2", 20) ) value <- c(rnorm(20), rnorm(20,.5) ) df <- data.frame(x, variable, value ) d <- ggplot(df, aes(x=x, y=value, group=variable, colour=variable ) ) + geom_line(size=2) d 这给了我预期的输出: 我以为我所要做的只是简单的事情: d + scale_fill_manual(values=c("#CC6666", "#9999CC")) 但这并没有改变。我想念什么?
74 r  ggplot2 

4
如何在ggplot2中移动或定位图例
我正在尝试创建一个ggplot2绘图,该绘图下有图例。 ggplot2书在第112页上说:“图例的位置和对齐方式由主题设置legend.position控制,其值可以是右,左,上,下,无(无图例)或数字位置”。 以下代码有效(因为默认为“ right”),并且也将“ none”作为图例位置,但是“ left”,“ top”,“ bottom”都将失败,并显示“ grid.Call错误”。 .graphics(“ L_setviewport”,pvp,TRUE):视口的位置和/或大小不受限制” library(ggplot2) (myDat <- data.frame(cbind(VarX=10:1, VarY=runif(10)), Descrip=sample(LETTERS[1:3], 10, replace=TRUE))) qplot(VarX,VarY, data=myDat, shape=Descrip) + opts(legend.position="right") 我究竟做错了什么?重新定位图例必须非常常见,所以我想是我。

1
控制ggplot2图例外观而不会影响绘图
我正在用ggplot2绘制线条,如下所示: ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw() 。 我发现图例标记较小,因此我希望它们较大。如果更改大小,则绘图上的线条也会更改: ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw() 。 但是我只想在图例中看到粗线,我希望情节上的线细。我尝试使用,legend.key.size但是它改变了标记的正方形,而不是线的宽度: library(grid) # for unit ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw() + theme(legend.key.size=unit(1,"cm")) 我还尝试使用要点: ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw() 但是当然,它仍然会影响剧情和传奇: 我想将线用于图,将点/点用于图例。 所以我想问两件事: 如何在不更改图的情况下更改图例中的线宽? 如何在图中绘制线条,但在图例中绘制点/点/正方形?
73 r  plot  ggplot2  legend 

3
ggplot2-在情节之外进行注释
我想将样本大小值与绘图上的点相关联。我可以geom_text用来将数字定位在点附近,但这很混乱。将它们沿着地块的外部边缘对齐会更清洁。 例如,我有: df=data.frame(y=c("cat1","cat2","cat3"),x=c(12,10,14),n=c(5,15,20)) ggplot(df,aes(x=x,y=y,label=n))+geom_point()+geom_text(size=8,hjust=-0.5) 产生此图: 我更喜欢这样的东西: 我知道我可以创建第二个图并使用grid.arrange(la la post),但是确定textGrobs的间距与y轴对齐将很繁琐。有没有更简单的方法可以做到这一点?谢谢!
73 r  annotations  ggplot2 

4
在R图形窗口中组合基础图形和ggplot图形
我想生成一个具有基本图形和ggplot图形组合的图形。以下代码使用R的基本绘图功能显示了我的身影: t <- c(1:(24*14)) P <- 24 A <- 10 y <- A*sin(2*pi*t/P)+20 par(mfrow=c(2,2)) plot(y,type = "l",xlab = "Time (hours)",ylab = "Amplitude",main = "Time series") acf(y,main = "Autocorrelation",xlab = "Lag (hours)", ylab = "ACF") spectrum(y,method = "ar",main = "Spectral density function", xlab = "Frequency (cycles per hour)",ylab = "Spectrum") require(biwavelet) …
72 r  plot  ggplot2  base  biwavelet 

3
将自定义图像添加到geom_polygon中,填写ggplot
一位学生问我是否可以使用R重新创建类似于下面的图: 这是从 本文开始的。 这种东西不是我的专长,但是使用以下代码,我可以创建95%CI椭圆并使用绘制它们geom_polygon()。我使用该rphylopic软件包将我从系谱库中抓取的图像填充到图像中。 #example data/ellipses set.seed(101) n <- 1000 x1 <- rnorm(n, mean=2) y1 <- 1.75 + 0.4*x1 + rnorm(n) df <- data.frame(x=x1, y=y1, group="A") x2 <- rnorm(n, mean=8) y2 <- 0.7*x2 + 2 + rnorm(n) df <- rbind(df, data.frame(x=x2, y=y2, group="B")) x3 <- rnorm(n, mean=6) y3 <- x3 …
72 r  ggplot2 

6
如何在R中绘制功能曲线
为像这样的函数绘制简单曲线有哪些选择 eq = function(x){x*x} 在R? 听起来这是一个显而易见的问题,但我只能在stackoverflow上找到这些相关问题,但它们都更加具体 R中的绘图线功能 在R中的数据点之上绘制函数 如何在R中使用复数绘制函数? 如何绘制简单的分段线性函数? 在同一图中绘制多个函数曲线 希望我不要写重复的问题。
71 r  plot  ggplot2  lattice 

4
箱线图显示平均值
在这个箱线图中,我们可以看到均值,但是对于每个箱线图的每个均值,我们又如何在图中得到数值呢? ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() + stat_summary(fun.y=mean, colour="darkred", geom="point", shape=18, size=3,show_guide = FALSE)
71 r  ggplot2 

4
ggplot2:调整图例中的符号大小
如何更改图例中符号的大小?我检查了的文档,theme但没有找到答案。 这是一个例子: library(ggplot2);library(grid) set.seed(1000) x <- 1:6 mu <- sin(x) observed <- mu + rnorm(length(x), 0, 0.5*sd(mu)) data <- data.frame( t=rep(x, 2), value=c(mu, observed) - min(mu, observed) + 0.5, class = rep(c("mu", "observed"), each=length(x))) mu <- data$value[1:length(x)] observed <- data$value[1:length(x) + length(x)] mu.min <- mu - 3 * 0.5 * …
71 r  ggplot2 

2
ggplot轴标签中的下标字母
我正在尝试找出如何在轴标签中添加下标字母。 dat <- data.frame(x = rnorm(100), y = rnorm(100)) ggplot(dat, aes(x=x,y=y)) + geom_point() + labs(y=expression(Blah[1])) dat <- data.frame(x = rnorm(100), y = rnorm(100)) ggplot(dat, aes(x=x,y=y)) + geom_point() + labs(y=expression(Blah[1d])) 第一个示例仅是一个数字而起作用,只要方括号中有一个字符,它就会失败。Blah [subscript(1d)]本质上是我所需要的,但是我无法弄清楚如何让它在下标中包含字母。我尝试了各种变体,包括paste()。 以下示例提供了奇怪的行为: labs(y=expression(Blah[12])) # this works labs(y=expression(Blah[d])) # this works labs(y=expression(Blah[d1])) # this works labs(y=expression(Blah[1d])) # this fails 有什么想法吗?
71 r  ggplot2 

2
控制ggplot2图例显示顺序
有谁知道我如何控制ggplot2中图例的顺序? 从我可以看到的顺序来看,出现的顺序与实际的比例标签有关,而不是与比例尺声明顺序有关。更改比例尺标题会更改顺序。我用菱形数据集做了一个小例子来强调这一点。我正在尝试将ggplot2用于一系列绘图,我想使一个变量出现在所有绘图的右侧。目前,虽然这种情况仅发生在其中的某些情况下,但我在如何执行所需订购的同时保留适当的比例尺标签上一无所知。 library(ggplot2) diamond.data <- diamonds[sample(nrow(diamonds), 1000), ] plot <- ggplot(diamond.data, aes(carat, price, colour = clarity, shape = cut)) + geom_point() + opts(legend.position = "top", legend.box = "horizontal") plot # the legend will appear shape then colour plot + labs(colour = "A", shape = "B") # legend will be colour …
70 r  ggplot2 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.