使用以下網站(
我的問題:我想修改上圖,使每條水平線上有“2 個點”(綠色和紅色),代表兩個不同變數的值。
我為此示例創建了一個資料集:
my_data = data.frame(var_1_col = "red", var_2_col = "green", var_1 = rnorm(8,10,10), var_2 = rnorm(8,5,1), name = c("A", "B", "C", "D", "E", "F", "G", "H"))
var_1_col var_2_col var_1 var_2 name
1 red green 14.726642 4.676161 A
2 red green 11.011187 4.937376 B
3 red green 12.418489 5.869617 C
4 red green 21.935154 5.641106 D
5 red green 20.209498 6.193123 E
6 red green -5.339944 5.187093 F
7 red green 20.540806 3.895683 G
8 red green 21.619631 4.097438 H
然后,我嘗試創建圖表 - 但它顯示為空:
# Plot
ggplot(my_data, aes(x=name, y=var_1, label=name))
geom_point(stat='identity', aes(col=var_1_col), size=6)
scale_color_manual(name="Var 1 or Var 2",
labels = c("Var 1", "Var 2"),
values = c("Var 1"="#00ba38", "Var 2"="#f8766d"))
geom_text(color="white", size=2)
labs(title="Plot",
subtitle="Plot: Dotplot")
ylim(-2.5, 2.5)
coord_flip()

理想情況下,我希望圖表看起來像這樣:

有人可以告訴我如何做到這一點嗎?
謝謝!
注意: var_1可能是一些變數,例如“平均燃料價格”,var_2也可能是“平均燃料價格”
uj5u.com熱心網友回復:
我建議將資料放入長格式,因為這是使用ggplot2. 所以,我會洗掉兩個顏色列,因為您可以將其設定為scale_color_manual. 然后,在aesfor 中geom_point,我們可以設定我們希望兩個變數的顏色不同(即,作為它們自己的組)。然后,我們仍然可以設定所有的標簽、名稱和顏色scale_color_manual。
library(tidyverse)
my_data %>%
select(-c(var_1_col, var_2_col)) %>%
pivot_longer(-name, names_to = "variable", values_to = "value") %>%
ggplot(., aes(x = name, y = value, label = name))
geom_point(stat = 'identity', aes(color = variable), size = 6)
scale_color_manual(
name = "Var 1 or Var 2",
labels = c("Var 1", "Var 2"),
values = c("#00ba38", "#f8766d")
)
labs(title = "Plot",
subtitle = "Plot: Dotplot")
coord_flip()
theme_bw()
輸出

uj5u.com熱心網友回復:
我想修改 [...],表示兩個不同變數的值。
如果您希望在同一張圖上繪制兩個不同的變數(并且在這種情況下,它們共享一個公共軸,就像名稱一樣),您可以構造兩個單獨的geom_point引數。
ggplot(my_data)
geom_point(aes(x=name, y=var_1, col=var_1_col))
geom_point(aes(x=name, y=var_2, col=var_2_col))
coord_flip()
您不必總是在初始ggplot函式中定義軸/顏色/標簽。通過僅指定資料集,您可以靈活地使用在以下特定于圖形的函式中使用的變數。這就是您可以在一個圖上構建多個圖表的方式:)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/404941.html
標籤:
上一篇:在checkboxInput()中交換標簽和復選框的位置閃亮
下一篇:R:如何保留和過濾行內的重復項
