小编lea*_*rer的帖子

强制ggplot图例显示没有值时的所有类别

我试图强制ggplot显示图例并修复因子的颜色,即使范围内没有值存在.

在下面的可再现的示例中,图1在变量X1的每个范围中具有至少一个值并且根据需要绘制.绘制每个图例标签并匹配所需的颜色.

在示例2中,变量Y1在每个创建的范围中没有值.因此,该图仅显示前4个图例标签并使用前4种颜色.

有没有办法绘制这个图形,迫使ggplot显示所有八个图例标签并修复颜色,以便cat1值始终为红色,cat2值始终为蓝色等.

我已经尝试了所有我能想到的但没有成功的事情.

- 可重复的例子 -

set.seed(45678)
dat <- data.frame(Row = rep(x = LETTERS[1:5], times = 10), 
                  Col = rep(x = LETTERS[1:10], each = 5),
                  Y = rnorm(n = 50, mean = 0, sd = 0.5),
                  X = rnorm(n = 50, mean = 0, sd = 2))

library(ggplot2)
library(RColorBrewer)
library(dplyr)

dat <- dat %>% mutate(Y1 = cut(Y, breaks = c(-Inf,-3:3,Inf)),
                      X1 = cut(X, breaks = c(-Inf,-3:3,Inf)))

# Figure 1
ggplot(data =  dat, aes(x = Row, y = Col)) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

17
推荐指数
1
解决办法
9860
查看次数

带有不同线型和标记的ggplot线图

我正在尝试在ggplot2中创建一个线图,它结合了一些变量的不同线型和其他变量的不同标记.

示例1使用不同的线型绘制每个变量,使用不同的标记绘制每个变量的示例2,以及使用不同的线和标记的示例3的图.

我试图用不同的线条样式(实线,虚线)绘制X2和X3,然后将X4和X5绘制成具有不同标记的实线(圆形,方形,等等).

有没有办法做到这一点?

library(ggplot2)
library(reshape2)

set.seed <- 1
df <- data.frame(cbind(seq(1,10,1),matrix(rnorm(100,1,20), 10, 4)))
d <- melt(df, id="X1")

# Example 1: different line styles
ggplot(d, aes(x=X1, y=value, color=variable)) + 
  geom_line(aes(linetype=variable), size=1)

# Example 2: different markers for each line
ggplot(d, aes(x=X1, y=value, color=variable)) + 
  geom_line() + geom_point(aes(shape=variable, size=4))

# Example 3: differnt line styles & different markers (You see this graph below)
ggplot(d, aes(x=X1, y=value, color=variable)) + 
  geom_line(aes(linetype=variable), size=1) +
  geom_point(aes(shape=variable, size=4))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

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

标签 统计

ggplot2 ×2

r ×2