为什么我的 ggplot 条形图位于两个单独的网格上?
Why my ggplot bars are on two separate grids?
这是来自 an online example on Hidden Markov Models。
有代码
library(ggplot2)
library(gridExtra)
library(reshape2)
ggplot(hmm1$draws, aes(x = as.numeric(roll), y = state, fill = state, col = state)) +
geom_bar(stat = "identity", alpha = I(0.7)) +
scale_fill_manual(values = mycols, name = "State:\nPerson that\nrolled the\ndice", labels = c("Alice", "Bob")) +
scale_color_manual(values = mycols, name = "State:\nPerson that\nrolled the\ndice", labels = c("Alice", "Bob")) +
theme(axis.ticks = element_blank(), axis.text.y = element_blank()) +
labs(y = "Actual State")
他们应该产生以下结果
但我发现条形图“重叠”,位于两条不同的线上
我不知道这是否取决于编码(我尝试了不同的选项但没有任何改变)或我的 R 上设置的一些参数。有什么建议吗?
您需要在 y 轴上将状态表示为数字才能在当前版本的 ggplot 下正常工作:
ggplot(draws, aes(x = roll, y = as.numeric(as.factor(state)),
fill = state, col = state)) +
geom_bar(stat = "identity", alpha = I(0.7)) +
scale_fill_manual(values = mycols,
name = "State:\nPerson that\nrolled the\ndice",
labels = c("Alice", "Bob")) +
scale_color_manual(values = mycols,
name = "State:\nPerson that\nrolled the\ndice",
labels = c("Alice", "Bob")) +
labs(y = "State") +
theme(axis.ticks = element_blank(), axis.text.y = element_blank())
数据
draws <- structure(list(roll = 1:100, state = c("alice", "alice", "alice",
"alice", "alice", "alice", "alice", "alice", "alice", "bob",
"bob", "bob", "bob", "bob", "bob", "bob", "bob", "alice", "alice",
"alice", "alice", "alice", "bob", "bob", "alice", "alice", "alice",
"alice", "alice", "alice", "alice", "alice", "bob", "bob", "bob",
"bob", "bob", "bob", "alice", "alice", "alice", "alice", "alice",
"bob", "bob", "alice", "alice", "alice", "alice", "bob", "alice",
"alice", "alice", "alice", "alice", "alice", "alice", "alice",
"alice", "bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob",
"bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob",
"bob", "bob", "bob", "bob", "alice", "alice", "alice", "alice",
"bob", "alice", "alice", "alice", "alice", "bob", "bob", "bob",
"bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob"), obs = c(8L,
9L, 3L, 7L, 3L, 5L, 10L, 4L, 7L, 8L, 7L, 15L, 17L, 14L, 14L,
12L, 11L, 6L, 4L, 2L, 4L, 5L, 10L, 14L, 3L, 4L, 4L, 6L, 3L, 4L,
2L, 6L, 12L, 14L, 15L, 12L, 8L, 12L, 2L, 3L, 7L, 3L, 4L, 8L,
14L, 1L, 3L, 2L, 2L, 15L, 4L, 4L, 3L, 7L, 7L, 4L, 3L, 6L, 4L,
13L, 18L, 9L, 12L, 13L, 13L, 10L, 10L, 12L, 13L, 15L, 12L, 11L,
12L, 12L, 9L, 11L, 13L, 16L, 7L, 7L, 1L, 4L, 5L, 6L, 7L, 1L,
5L, 3L, 3L, 12L, 12L, 12L, 10L, 12L, 6L, 6L, 10L, 12L, 7L, 5L
), dice = c(5L, 9L, 8L, 9L, 6L, 8L, 8L, 10L, 4L, 7L, 7L, 9L,
7L, 7L, 7L, 5L, 3L, 8L, 10L, 11L, 10L, 2L, 7L, 2L, 5L, 10L, 12L,
9L, 6L, 6L, 8L, 4L, 10L, 5L, 5L, 7L, 6L, 2L, 7L, 9L, 11L, 7L,
3L, 9L, 2L, 7L, 7L, 12L, 2L, 4L, 7L, 6L, 6L, 10L, 5L, 10L, 6L,
11L, 2L, 6L, 10L, 6L, 9L, 7L, 10L, 11L, 8L, 7L, 12L, 9L, 10L,
5L, 8L, 7L, 5L, 5L, 6L, 11L, 9L, 4L, 6L, 7L, 6L, 2L, 4L, 12L,
7L, 7L, 2L, 7L, 6L, 9L, 6L, 6L, 7L, 8L, 6L, 7L, 11L, 7L)),
class = "data.frame", row.names = c(NA, -100L))
这是来自 an online example on Hidden Markov Models。 有代码
library(ggplot2)
library(gridExtra)
library(reshape2)
ggplot(hmm1$draws, aes(x = as.numeric(roll), y = state, fill = state, col = state)) +
geom_bar(stat = "identity", alpha = I(0.7)) +
scale_fill_manual(values = mycols, name = "State:\nPerson that\nrolled the\ndice", labels = c("Alice", "Bob")) +
scale_color_manual(values = mycols, name = "State:\nPerson that\nrolled the\ndice", labels = c("Alice", "Bob")) +
theme(axis.ticks = element_blank(), axis.text.y = element_blank()) +
labs(y = "Actual State")
他们应该产生以下结果
但我发现条形图“重叠”,位于两条不同的线上
我不知道这是否取决于编码(我尝试了不同的选项但没有任何改变)或我的 R 上设置的一些参数。有什么建议吗?
您需要在 y 轴上将状态表示为数字才能在当前版本的 ggplot 下正常工作:
ggplot(draws, aes(x = roll, y = as.numeric(as.factor(state)),
fill = state, col = state)) +
geom_bar(stat = "identity", alpha = I(0.7)) +
scale_fill_manual(values = mycols,
name = "State:\nPerson that\nrolled the\ndice",
labels = c("Alice", "Bob")) +
scale_color_manual(values = mycols,
name = "State:\nPerson that\nrolled the\ndice",
labels = c("Alice", "Bob")) +
labs(y = "State") +
theme(axis.ticks = element_blank(), axis.text.y = element_blank())
数据
draws <- structure(list(roll = 1:100, state = c("alice", "alice", "alice",
"alice", "alice", "alice", "alice", "alice", "alice", "bob",
"bob", "bob", "bob", "bob", "bob", "bob", "bob", "alice", "alice",
"alice", "alice", "alice", "bob", "bob", "alice", "alice", "alice",
"alice", "alice", "alice", "alice", "alice", "bob", "bob", "bob",
"bob", "bob", "bob", "alice", "alice", "alice", "alice", "alice",
"bob", "bob", "alice", "alice", "alice", "alice", "bob", "alice",
"alice", "alice", "alice", "alice", "alice", "alice", "alice",
"alice", "bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob",
"bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob",
"bob", "bob", "bob", "bob", "alice", "alice", "alice", "alice",
"bob", "alice", "alice", "alice", "alice", "bob", "bob", "bob",
"bob", "bob", "bob", "bob", "bob", "bob", "bob", "bob"), obs = c(8L,
9L, 3L, 7L, 3L, 5L, 10L, 4L, 7L, 8L, 7L, 15L, 17L, 14L, 14L,
12L, 11L, 6L, 4L, 2L, 4L, 5L, 10L, 14L, 3L, 4L, 4L, 6L, 3L, 4L,
2L, 6L, 12L, 14L, 15L, 12L, 8L, 12L, 2L, 3L, 7L, 3L, 4L, 8L,
14L, 1L, 3L, 2L, 2L, 15L, 4L, 4L, 3L, 7L, 7L, 4L, 3L, 6L, 4L,
13L, 18L, 9L, 12L, 13L, 13L, 10L, 10L, 12L, 13L, 15L, 12L, 11L,
12L, 12L, 9L, 11L, 13L, 16L, 7L, 7L, 1L, 4L, 5L, 6L, 7L, 1L,
5L, 3L, 3L, 12L, 12L, 12L, 10L, 12L, 6L, 6L, 10L, 12L, 7L, 5L
), dice = c(5L, 9L, 8L, 9L, 6L, 8L, 8L, 10L, 4L, 7L, 7L, 9L,
7L, 7L, 7L, 5L, 3L, 8L, 10L, 11L, 10L, 2L, 7L, 2L, 5L, 10L, 12L,
9L, 6L, 6L, 8L, 4L, 10L, 5L, 5L, 7L, 6L, 2L, 7L, 9L, 11L, 7L,
3L, 9L, 2L, 7L, 7L, 12L, 2L, 4L, 7L, 6L, 6L, 10L, 5L, 10L, 6L,
11L, 2L, 6L, 10L, 6L, 9L, 7L, 10L, 11L, 8L, 7L, 12L, 9L, 10L,
5L, 8L, 7L, 5L, 5L, 6L, 11L, 9L, 4L, 6L, 7L, 6L, 2L, 4L, 12L,
7L, 7L, 2L, 7L, 6L, 9L, 6L, 6L, 7L, 8L, 6L, 7L, 11L, 7L)),
class = "data.frame", row.names = c(NA, -100L))