Попытаться нарисовать линию с аблином?
ggplot(G, aes(x = State, y = Score, fill = State)) +
geom_bar(stat = "identity", position = "identity", width = 0.5) +
scale_y_continuous(labels = scales::comma) +
coord_flip()
Этот код я использую, и я пытаюсь добавить строку с оценкой 236, поэтому всегда приветствуются как это сделать и как улучшить диаграмму в целом, а также любые изменения или предложения.
2 ответа
Просто используйте:
geom_hline(yintercept = 236)
Может быть стоит изменить порядок оси Y и использовать fill = Score
, Это сделало бы сюжет примерно таким:
df %>%
ggplot(aes(reorder(State, -Assault), Assault, fill = Assault)) +
geom_col(width = 0.75, aes(fill = Assault)) +
labs(x = "State") +
geom_hline(yintercept = 200, size = 1) +
coord_flip() +
theme_classic()
Ты можешь использовать geom_vline()
сделать это. Поскольку у вас так много баров, вы захотите применить Vline после вашего geom_bar()
так что он будет отображаться сверху ваших баров (а не под тем, где вы можете только увидеть его).
ggplot(G, aes(x = State, y = Score, fill = State)) +
geom_bar(stat = "identity", position = "identity", width = 0.5) +
geom_hline(yintercept=236, color="#000000", linetype="solid") +
scale_y_continuous(labels = scales::comma) +
coord_flip()
Все, что я сделал, это добавил третью строку в ваш пример выше. ggplot2
всегда смущает меня по горизонтали и вертикали, особенно когда вы делаете такие вещи, как coord_flip()
, Я думаю, что я правильно понял (хотя это выглядит неправильно, это из-за переворота), но если я ошибаюсь и линия выходит горизонтально, замените третью строчку выше на эту:
geom_vline(xintercept=236, color="#000000", linetype="solid") +
и обратите внимание только на два изменения: vline становится hline, а xintercept становится yintercept.