相关疑难解决方法(0)

绘制2 y轴,左侧为y轴,右侧为y轴

我需要绘制一个显示计数的条形图和一个在一个图表中显示速率的折线图,我可以分别做两个,但是当我把它们放在一起时,我的第一层的比例(即geom_bar)与第二层重叠层(即geom_line).

我可以将轴geom_line向右移动吗?

r ggplot2 r-faq

209
推荐指数
12
解决办法
25万
查看次数

如何使用具有双y轴ggplot的facet

我一直试图从这里扩展我的场景以利用facets(特别是facet_grid()).

我已经看过这个例子,但是我似乎无法让它为我geom_bar()geom_point()组合工作.我试图从仅仅改变例子中使用的代码facet_wrapfacet_grid这也似乎让第一层不显示.

对于网格和凹凸,我是一个非常新手,所以如果有人可以提供一些指导,如何使P1显示左侧y轴,P2显示在右侧y轴上,这将是很好的.

数据

library(ggplot2)
library(gtable)
library(grid)
library(data.table)
library(scales)

grid.newpage()

dt.diamonds <- as.data.table(diamonds)

d1 <- dt.diamonds[,list(revenue = sum(price),
                        stones = length(price)),
                  by=c("clarity","cut")]

setkey(d1, clarity,cut)
Run Code Online (Sandbox Code Playgroud)

p1和p2

p1 <- ggplot(d1, aes(x=clarity,y=revenue, fill=cut)) +
  geom_bar(stat="identity") +
  labs(x="clarity", y="revenue") +
  facet_grid(. ~ cut) +
  scale_y_continuous(labels=dollar, expand=c(0,0)) + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1),
        axis.text.y = element_text(colour="#4B92DB"), 
        legend.position="bottom")

p2 <- ggplot(d1, aes(x=clarity, y=stones, colour="red")) +
  geom_point(size=6) + 
  labs(x="", y="number …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gtable

27
推荐指数
2
解决办法
6652
查看次数

辅助/双轴 - ggplot

我打开这个问题有三个原因:第一,用ggplot重新开启双轴讨论.其次,要问是否有一种非折磨的通用方法来做到这一点.最后,请求您提供有关解决方案的帮助.

我意识到关于如何将辅助轴添加到ggplot有多个讨论和问题.这些通常最终得出两个结论之一:

  1. 这很糟糕,不要这样做:Hadley Wickham在这里回答了同样的问题,得出结论认为这是不可能的.他有一个非常好的论据,即"使用单独的y尺度(不是彼此变换的y尺度)从根本上是有缺陷的".

  2. 如果你坚持,过度复杂的生活和使用网格:例如在这里这里


然而,这里是我经常遇到的一些情况,其中可视化将极大地受益于双轴.我抽象了下面的概念.

  1. 该图是宽的,因此重复右侧的y轴将有助于(或顶部的x轴)将使解释变得容易.(我们都偶然发现了其中一个我们需要在屏幕上使用标尺的图,因为轴太远了) 在此输入图像描述

  2. 我需要添加一个新轴,它是对原始轴的转换(例如:百分比,分位数,......).(我目前面临的问题是.下面的可重复示例) 在此输入图像描述

  3. 最后,添加分组/元信息:当我使用具有多级的分类数据时,我偶然发现(例如:Categories = {1,2,x,y,z},它们被"元分"为字母和数字.) 尽管对元级别进行颜色编码并添加图例甚至构面解决了问题,但使用辅助轴时,事情会变得更简单一些,用户不需要将条形图的颜色与条形图的颜色相匹配.传奇. 在此输入图像描述


一般问题:鉴于新的可扩展性功能ggplot 2.0.0,是否有更强大的无折磨方式来使双轴不使用网格?

最后一条评论:我绝对同意双轴的错误使用可能会产生危险的误导......但是,对于信息可视化和数据科学而言,情况并非如此?



解决方法问题:

目前,我需要一个百分比轴(第二种情况).我用过annotategeom_hline作为解决方法.但是,我无法将文字移到主要情节之外.hjust也似乎没有和我合作.

可重复的例子:

library(ggplot2)

# Random values generation - with some manipulation : 
maxVal = 500
value = sample(1:maxVal, size = 100, replace = T)
value[value < 400] = value[value < 400] * 0.2
value[value > 400] …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

12
推荐指数
1
解决办法
843
查看次数

ggplot2:为2个不同的geom分配颜色并获得2个不同的图例

我怎样才能让ggplot2为不同的geom提供一个单独的图例,它们都使用颜色来表示2个不同的变量.我想要3个传说,一个用于z,ab,但是a&b似乎被组合成一个单一的图例,即使a和b代表不同的变量.我也希望能够控制每个图例中的颜色.

dat <- data.frame(
    y = rnorm(200),
    x = sample(c("A", "B"), 200, TRUE),
    z = sample(100:200, 200, TRUE), 
    a = sample(c("male", "female"), 200, TRUE),
    b = factor(sample(1:2, 200, TRUE))
)

ggplot(dat, aes(y = y, x = x)) +
    geom_point(aes(color = a, size = z)) + 
    geom_boxplot(fill = NA, size=.75, aes(color=b)) +
    scale_color_manual(values = c("#F8766D", "#00BFC4", "orange", "purple"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

9
推荐指数
2
解决办法
4372
查看次数

标签 统计

ggplot2 ×4

r ×4

gtable ×1

r-faq ×1