标签: ggplot2

如何使用ggplot2将标签放在R中的geom_bar上

我想在geom_bar图表上堆叠一些标签.这是一个例子:

df <- data.frame(x=factor(c(TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE)))
ggplot(df) + geom_bar(aes(x,fill=x)) + opts(axis.text.x=theme_blank(),axis.ticks=theme_blank(),axis.title.x=theme_blank(),legend.title=theme_blank(),axis.title.y=theme_blank())
Run Code Online (Sandbox Code Playgroud)

现在

表(DF $ X)

FALSE  TRUE 
    3     5 
Run Code Online (Sandbox Code Playgroud)

我想在两个酒吧的顶部有3和5.如果我也可以获得百分比值,那就更好了.例如3 (37.5%)5 (62.5%).像这样:

这可能吗?如果是这样,怎么样?

r ggplot2

53
推荐指数
4
解决办法
11万
查看次数

ggplot2 scale_brewer的逆序

看似非常简单的事情,但我花了30分钟没有找到答案.

如何反转颜色顺序?通过查看scale_brewer的文档,我认为它可能是formatter=可疑的论点.我通过'rev'然后rev,但它们没有效果(没有错误信息,只是被忽略).

r ggplot2

53
推荐指数
4
解决办法
5万
查看次数

带表达式的ggplot2双行标签

我想用两个expression()语句写一个轴标签.但是,plotmath并且expression不允许这样(例如,下标文本出现在最右侧).我在大约2005年发现了类似问题的讨论,但他们提供的工作并没有转化为我在ggplot2中的应用程序.最近的一个问题解决了多行表达式语句的不同排列,但是这里提供的工作再次不适用于此.

例:

p <- ggplot(mtcars,aes(x=wt,y=mpg))+
  geom_point()+
  xlab(expression(paste("A long string of text goes here just for the purpose \n of illustrating my point Weight "[reported])))
try(ggsave(plot=p,filename=<some file>,height=4,width=6))
Run Code Online (Sandbox Code Playgroud)

产生一个图像,其中下标"报告"在我希望它位于前一个单词旁边时向右踢出. ggplot2带有表达式的两行标签

r ggplot2

53
推荐指数
4
解决办法
7万
查看次数

将数学符号和下标与普通字母混合在一起

我想绘制一个看起来像这样的标签ggplot2:

Value is $\sigma$, R^{2} = 0.6Value is普通字体在哪里,$\sigma$是一个希腊小写的西格玛字母,R^{2} = 0.6显示为R带有上标2后跟等号(=)后跟的0.6.如何在ggplot factorxlab,ylabR之类的参数中使用它?

r ggplot2 mathematical-typesetting

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

传说在底部,两行包裹在r中的ggplot2中

Rdates <- c("2007-01-31","2007-02-28","2007-03-30","2007-04-30","2007-05-31","2007-06-29","2007-07-31","2007-08-31","2007-09-28","2007-10-31")
Rdates <- as.Date(Rdates)
Cnames <- c("Column 1 Really Long","Column 2 Really Long","Column 3 Really Long","Column 4 Really Long","Column 5 Really Long","Column 6 Really Long","Column 7 Really Long","Column 8 Really Long","Column 9 Really Long","Column 10 Really Long")
MAINDF <- data.frame(replicate(10,runif(10,-0.03,0.03)))
rownames(MAINDF) <- Rdates
colnames(MAINDF) <- Cnames
CUSTOMpalette <- c("#1a2ffa", "#0d177d", "#1a9ffa", "#fa751a", "#4b8e12", "#6fd21b", "#fae51a", "#c3b104", "#f5df05", "#dcc805")
MAINDF[,"dates"] <- Rdates

MAINDF <- melt(MAINDF,id.vars="dates")

gg <- ggplot(MAINDF, aes(x = dates, y = value, fill = variable))
gg <- …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2

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

ggplot2中的qqnorm和qqline

假设有一个线性模型LM,我想要一个残差的qq图.通常我会使用R基础图形:

qqnorm(residuals(LM), ylab="Residuals")
qqline(residuals(LM))
Run Code Online (Sandbox Code Playgroud)

我可以弄清楚如何获得情节的qqnorm部分,但我似乎无法管理qqline:

ggplot(LM, aes(sample=.resid)) +
    stat_qq()
Run Code Online (Sandbox Code Playgroud)

我怀疑我遗漏了一些非常基本的东西,但似乎应该有一种简单的方法来做到这一点.

编辑:非常感谢下面的解决方案.我已经修改了代码(非常轻微)以从线性模型中提取信息,以便绘图的工作方式类似于R基础图形包中的便利图.

ggQQ <- function(LM) # argument: a linear model
{
    y <- quantile(LM$resid[!is.na(LM$resid)], c(0.25, 0.75))
    x <- qnorm(c(0.25, 0.75))
    slope <- diff(y)/diff(x)
    int <- y[1L] - slope * x[1L]
    p <- ggplot(LM, aes(sample=.resid)) +
        stat_qq(alpha = 0.5) +
        geom_abline(slope = slope, intercept = int, color="blue")

    return(p)
}
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggproto

52
推荐指数
6
解决办法
4万
查看次数

使用ggplot2,我可以在轴上插入一个断点吗?

我想制作一个条形图,其中一个值比所有其他值大得多.有没有一种不连续的y轴方法?我的数据如下:

df <- data.frame(a = c(1,2,3,500), b = c('a1', 'a2','a3', 'a4'))

p <- ggplot(data = df, aes(x = b, y = a)) + geom_bar() 
p <- p + opts(axis.text.x=theme_text(angle= 90, hjust=1))  + coord_flip()
p
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法让我的轴可以从1到10,然后是490 - 500?我想不出任何其他绘制数据的方式(除了转换它,我不想做)

r ggplot2

52
推荐指数
6
解决办法
6万
查看次数

使用ggplot2中的scale_x_date格式化日期

在以前版本的ggplot2中,我能够使用以下两个命令之一来格式化我的x日期:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=(date_format="%B")) +
Run Code Online (Sandbox Code Playgroud)

要么

scale_x_date(major="months", minor="weeks", format="%B") +
Run Code Online (Sandbox Code Playgroud)

生成完整月份名称的"%B"格式.

(我担心我再也无法区分哪一个有效,因为它们都被注释掉了.)

我不记得什么时候,但在ubuntu 12.04升级中更新R或ggplot之后,这对我来说不再适用.现在,完全相同的数据会产生错误:

Error in scale_labels.continuous(scale) : 
  Breaks and labels are different lengths
Run Code Online (Sandbox Code Playgroud)

与第一,和

Error in continuous_scale(aesthetics, "date", identity, breaks = breaks,  : 
  unused argument(s) (major = "months", minor = "weeks", format = "%B")
Run Code Online (Sandbox Code Playgroud)

随着第二个.

如果我删除labels =参数,并申请

scale_x_date(breaks = "1 month", minor_breaks = "1 week") +
Run Code Online (Sandbox Code Playgroud)

它在每个月的第一天产生日期格式"YYYY-MM-DD".

咨询功能帮助?scale_x_date,我也尝试了以下方法:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) +
Run Code Online (Sandbox Code Playgroud)

但是这会产生这个错误:

Error in structure(list(call = …
Run Code Online (Sandbox Code Playgroud)

formatting r date ggplot2

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

ggplot2中的数字格式化轴标签?

我正在使用ggplot2 0.9.1绘制一个相当简单的图表.

x <- rnorm(100, mean=100, sd = 1) * 1000000
y <- rnorm(100, mean=100, sd = 1) * 1000000
df <- data.frame(x,y)

p.new <- ggplot(df,aes(x,y)) +
  geom_point()
print(p.new)
Run Code Online (Sandbox Code Playgroud)

哪个有效,但ggplot2默认使用不适合我的观众的科学记数法.如果我想通过输入以下内容来更改x轴标签格式:

p.new + scale_x_continuous(labels = comma)
Run Code Online (Sandbox Code Playgroud)

我明白了:

Error in structure(list(call = match.call(), aesthetics = aesthetics,  : 
  object 'comma' not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我注意到语言最近从"格式化"改为"标签".也许我误读了手册页?

编辑:我确实误读了手册页

library(scales)在尝试此操作之前需要加载.

r ggplot2

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

ggplot2:facet_wrap基于数据集中变量的条带颜色

有没有办法根据随数据框提供的变量填充使用facet_wrap创建的facet条?

示例数据:

MYdata <- data.frame(fruit = rep(c("apple", "orange", "plum", "banana", "pear", "grape")), farm = rep(c(0,1,3,6,9,12), each=6), weight = rnorm(36, 10000, 2500), size=rep(c("small", "large")))

示例图:

p1 = ggplot(data = MYdata, aes(x = farm, y = weight)) + geom_jitter(position = position_jitter(width = 0.3), aes(color = factor(farm)), size = 2.5, alpha = 1) + facet_wrap(~fruit)

我知道如何更改条带的背景颜色(例如橙色):

p1 + theme(strip.background = element_rect(fill="orange"))

facet_wrap和橙色条纹颜色

有没有办法转嫁值的变量sizeMYdata的参数fillelement_rect

基本上,对于所有条带而不是1种颜色,我希望小水果(苹果,李子,梨)的条带背景颜色为绿色,大果实(橙色,香蕉,葡萄)的背景颜色为红色.

r ggplot2 facet-wrap

52
推荐指数
4
解决办法
3万
查看次数