小编pab*_*lom的帖子

填充和scale_fill_discrete /图例之间的ggplot冲突

我正在修改geom_point尝试绘制以下代码。我已经将cars $ vs转换为具有离散级别的因子,以便通过将其分配给ggplot aes设置中的“填充”,可以用不同的颜色可视化该变量的两个级别。

cars <- mtcars
cars$vs <- as.factor(cars$vs)

ggplot(cars,aes(x = mpg, y = disp, fill = vs)) +
  geom_point(size = 4) +
  scale_fill_discrete(name = "Test")
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

如您所见,该图没有通过颜色区分两种“填充”条件。但是,它保留了我在scale_fill_discrete中指定的图例标签。

另外,我可以绘制以下内容(相同的代码,但请使用“颜色”代替“填充”)

cars <- mtcars
cars$vs <- as.factor(cars$vs)

ggplot(cars,aes(x = mpg, y = disp, color = vs)) +
  geom_point(size = 4) +
  scale_fill_discrete(name = "Test")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如您所见,使用“颜色”而不是“填充”可以通过颜色区分因子的级别,但是似乎可以覆盖我使用scale_fill_discrete对图例标题所做的任何更改。

我是否错误地使用“填充”?如何使用此方法以不同的颜色绘制因子的不同级别通过scale_fill_discrete控制图例?

plot r ggplot2

4
推荐指数
1
解决办法
1551
查看次数

coord_flip之后分组条形图中的数据翻转顺序

我遇到了一个令人烦恼的问题,但无法找到特定的解决方案。我正在尝试创建水平分组的条形图;我想要的只是获取标准的垂直条形图并将其向右旋转90度。当我使用coord_flip,它旋转的阴谋权,但翻转(反转)数据的顺序每个组。这是一个例子:

library("ggplot2")

df <- data.frame(Group = c("A","A","A","B","B","B","C","C","C"),
                 Sub = c("1","2","3","1","2","3","1","2","3"),
                 Score = c(1,2,3,1,2,3,1,2,3))

df$Group <- factor(df$Group,
                       levels = c("A","B","C"),
                       labels = c("A","B","C"),
                       ordered = TRUE)

df$Sub <- factor(df$Sub,
                  levels = c("1","2","3"),
                  labels = c("1","2","3"),
                  ordered = TRUE)

ggplot(data = df, aes(x = Group, y = Score, fill = Sub)) +
  geom_bar(stat="identity", position=position_dodge()) +
  coord_flip() +
  scale_x_discrete(limits = rev(levels(df$Group)))
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令按正确的顺序获取组:

scale_x_discrete(limits = rev(levels(df$Group)))
Run Code Online (Sandbox Code Playgroud)

但是,我不能拿到订单每一组正确的。图例和数据彼此相反,在这种情况下,我想更改绘制数据的顺序,而不是图例的顺序。

我已经看到您可以通过将条形图的位置闪避设置为-.9来解决此问题,如下所示:

geom_bar(stat="identity", position=position_dodge(-.9))
Run Code Online (Sandbox Code Playgroud)

鉴于我的分组变量是字符串,因此我不确定此处提出的解决方案是否有效。

任何帮助将不胜感激!

r ggplot2

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

标签 统计

ggplot2 ×2

r ×2

plot ×1