如何使用带 'y' 的线极坐标作为简单计数 ggplot2 对图形重新排序?
How can I reorder the graph using cord polar with 'y' as a simple count ggplot2?
我正在尝试按计数对图表进行排序,但我不清楚该怎么做。重要的是 'topic' 是一个离散变量,我只是显示整个数据集中每个主题的计数。这是我使用的代码:
ggplot(data = dtd, aes(x = topic)) + geom_bar(fill = "lightblue", colour = "black") + coord_polar()
这是我尝试重新排序时的错误:
ggplot(data = dtd, aes(x = reorder(topic))) + geom_bar(fill = "lightblue", colour = "black") + coord_polar()
Error in tapply(X = X, INDEX = x, FUN = FUN, ...) :
argument "X" is missing, with no default
如果有人会说我如何用渐变蓝色阴影或漂亮的东西填充这些部分,那就更好了。
错误来自 reorder
没有第二个值向量来重新排序。您可以通过在传递给 ggplot
之前计算您的数据来提供一个,然后通过新变量对其重新排序:
library(dplyr)
library(ggplot2)
df <- tibble(Topic = c(rep("A", 55), rep("B", 22), rep("C", 40), rep("D", 100)))
df %>%
group_by(Topic) %>%
summarise(freq = n()) %>%
ggplot(aes(x = reorder(Topic, freq), y = freq)) +
geom_bar(fill = "lightblue", colour = "black", stat = "identity") +
coord_polar()
可能有更流畅的方法,但这会保留您之前使用的 reorder
功能。
我正在尝试按计数对图表进行排序,但我不清楚该怎么做。重要的是 'topic' 是一个离散变量,我只是显示整个数据集中每个主题的计数。这是我使用的代码:
ggplot(data = dtd, aes(x = topic)) + geom_bar(fill = "lightblue", colour = "black") + coord_polar()
这是我尝试重新排序时的错误:
ggplot(data = dtd, aes(x = reorder(topic))) + geom_bar(fill = "lightblue", colour = "black") + coord_polar()
Error in tapply(X = X, INDEX = x, FUN = FUN, ...) :
argument "X" is missing, with no default
如果有人会说我如何用渐变蓝色阴影或漂亮的东西填充这些部分,那就更好了。
错误来自 reorder
没有第二个值向量来重新排序。您可以通过在传递给 ggplot
之前计算您的数据来提供一个,然后通过新变量对其重新排序:
library(dplyr)
library(ggplot2)
df <- tibble(Topic = c(rep("A", 55), rep("B", 22), rep("C", 40), rep("D", 100)))
df %>%
group_by(Topic) %>%
summarise(freq = n()) %>%
ggplot(aes(x = reorder(Topic, freq), y = freq)) +
geom_bar(fill = "lightblue", colour = "black", stat = "identity") +
coord_polar()
可能有更流畅的方法,但这会保留您之前使用的 reorder
功能。