标签: ggplot2

用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
Run Code Online (Sandbox Code Playgroud)

这给了我预期的输出:

在此输入图像描述

我认为我所要做的就是这样简单:

d +  scale_fill_manual(values=c("#CC6666", "#9999CC"))
Run Code Online (Sandbox Code Playgroud)

但这没有任何改变.我错过了什么?

r ggplot2

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

完全删除facet_wrap标签

我想完全删除刻面的标签以创造一种迷你效果,因为标签是不相关的观众,我能想到的最好的是:

library(MASS)
library(ggplot2)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + 
     facet_wrap(~ID) + 
     theme(strip.text.x = element_text(size=0))
Run Code Online (Sandbox Code Playgroud)

那么我可以完全摆脱(现在是空白的)strip.background以便为"迷你图"留出更多空间吗?

或者,有没有更好的方法来获得像这样的大量二进制值时间序列的" 迷你 "效果?

graphics r ggplot2

62
推荐指数
3
解决办法
5万
查看次数

了解日期并使用R中的ggplot2绘制直方图

主要问题

我在理解为什么日期,标签和中断的处理没有像我在R中尝试使用ggplot2进行直方图时所预期的那样有问题.

我在找:

  • 我日期频率的直方图
  • 刻度标记位于匹配条的中心
  • %Y-b格式的日期标签
  • 适当的限制; 最小化网格空间边缘和最外边条之间的空白空间

我已将数据上传到pastebin以使其可重现.我创建了几个列,因为我不确定这样做的最佳方法:

> dates <- read.csv("http://pastebin.com/raw.php?i=sDzXKFxJ", sep=",", header=T)
> head(dates)
       YM       Date Year Month
1 2008-Apr 2008-04-01 2008     4
2 2009-Apr 2009-04-01 2009     4
3 2009-Apr 2009-04-01 2009     4
4 2009-Apr 2009-04-01 2009     4
5 2009-Apr 2009-04-01 2009     4
6 2009-Apr 2009-04-01 2009     4
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

library(ggplot2)
library(scales)
dates$converted <- as.Date(dates$Date, format="%Y-%m-%d")

ggplot(dates, aes(x=converted)) + geom_histogram()
+      opts(axis.text.x = theme_text(angle=90))
Run Code Online (Sandbox Code Playgroud)

这会产生这个图表.我想要%Y-%b格式化,所以我在周围搜索并尝试以下内容,基于此SO:

ggplot(dates, aes(x=converted)) + geom_histogram() …
Run Code Online (Sandbox Code Playgroud)

datetime r histogram ggplot2

62
推荐指数
3
解决办法
5万
查看次数

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)
Run Code Online (Sandbox Code Playgroud)

这产生了这个情节: 在此输入图像描述

我更喜欢这样的东西: 在此输入图像描述

我知道我可以创建第二个图并使用grid.arrange(这篇文章),但确定textGrobs与y轴对齐的间距会很繁琐.有更简单的方法吗?谢谢!

annotations r ggplot2

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

是否有内置的方法在ggplot2中进行对数色标?

以下是分箱密度图的示例:

require(ggplot2)
n <- 1e5
df <- data.frame(x = rexp(n), y = rexp(n))
p <- ggplot(df, aes(x = x, y = y)) + stat_binhex()
print(p)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

调整色标以便间隔是间隔的,但尝试一下会很不错

my_breaks <- round_any(exp(seq(log(10), log(5000), length = 5)), 10)
p + scale_fill_hue(breaks = as.factor(my_breaks), labels = as.character(my_breaks))
Run Code Online (Sandbox Code Playgroud)

结果Error: Continuous variable () supplied to discrete scale_hue.似乎休息期待一个因素(可能是?)并考虑到分类变量而设计?

有一个没有内置的解决方法,我会发布作为答案,但我想我可能只是迷失在我的使用scale_fill_hue,我想知道是否有任何明显的我缺少.

r ggplot2

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

创建堆叠的条形图,其中每个堆栈按比例缩放为100%

我有一个像这样的data.frame:

df <- read.csv(text = "ONE,TWO,THREE
                       23,234,324
                       34,534,12
                       56,324,124
                       34,234,124
                       123,534,654")
Run Code Online (Sandbox Code Playgroud)

我想生成一个百分比条形图,看起来像这样(在LibreOffice Calc中制作): 在此输入图像描述

因此,条形应该标准化,因此所有堆叠具有相同的高度并且总和为100%.到目前为止,我所能获得的是一个堆积的条形图(不是百分比),使用:

barplot(as.matrix(df))
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

r ggplot2

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

是否有ggplot2的美学表或目录?

我是ggplot2的新手,并一直试图找到一个全面的美学列表.我想我理解他们的目的,但很难知道哪些可以用于各种情况(主要是geoms?).Hadley的网站偶尔会在个别地理位置的页面上列出可用的美学,而R文档偶尔(尽管很少)会做同样的事情.我甚至发现了两个不太匹配的geom.

我在这里搜索了一些答案,甚至买了这本书!唉,没有帮助.

我认为拥有一个列在一个维度中的所有美学和所有geom(和其他对象?)在另一个维度中列出的表格会很棒.

有谁知道这样的事情?

R中是否有一个简单的方法(命令)列出可以应用于对象的所有美学?

以下是表格的开始方式:

List           x       y       fill      size    colour   linetype . . .
geom_point    Yes     Yes      Yes       Yes      Yes        No
geom_abline   Yes     Yes      No        Yes      Yes       Yes
.
.
.
Run Code Online (Sandbox Code Playgroud)

美学定义/参数目录也是非常有用的参考.

r ggplot2

61
推荐指数
3
解决办法
1万
查看次数

如何增加ggplot2图例中点的大小?

我在一个图中有数千个点并设置"size = 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
Run Code Online (Sandbox Code Playgroud)

图例中点的大小

r ggplot2

61
推荐指数
1
解决办法
3万
查看次数

我可以从顶部到底部更改ggplot中条带标签的位置吗?

我知道这不是一个数据可视化问题,但老板要求它,所以我需要弄清楚它是否可行.

谢谢!

r strip facet ggplot2

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

ggplot轴标签中的下标字母

另一个发布的图表,另一天在ggplot2中调整了一些东西...我在唠叨?我不确定...

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]))
Run Code Online (Sandbox Code Playgroud)

我正在尝试弄清楚如何在轴标签中加下标字母.第一个例子只是一个数字,只要你在方括号中有一个字符就会失败.Blah [下标(1d)]基本上就是我需要的,但我无法弄清楚如何让它让我在下标中有字母.尝试了各种变体,包括paste()等.

当然,要增加挫折......

labs(y=expression(Blah[12])) - 这很有效

labs(y=expression(Blah[d])) - 这很有效

labs(y=expression(Blah[d1])) - 这很有效

labs(y=expression(Blah[1d])) - 这失败了.

思考?

r ggplot2

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

标签 统计

ggplot2 ×10

r ×10

annotations ×1

datetime ×1

facet ×1

graphics ×1

histogram ×1

strip ×1