我想分別在我的每個條形圖中列印單個資料點。每個條形圖是該類別的平均值
我想要這個輸出:

我的資料集看起來像這樣,我從 Excel 作業表中匯入
# A B C D E
1 3 3 2 2 2
2 NA 2 NA 3 1
3 1 3 3 1 1
library(readxl)
library(ggplot2)
Book1 <- read_excel("C:/Users/helix/Desktop/Book1.xlsx")
x_row = names(Book1)
y_val = colMeans(Book1, na.rm = TRUE)
sd_val = sapply(Book1, sd, na.rm = TRUE)
df = data.frame(x_name = x_row, mean=y_val, sd = sd_val)
ggplot(df, aes(x= x_row, y = y_val ))
geom_bar(stat = 'identity')
geom_errorbar(aes(ymin=mean-sd, ymax=mean sd), width=.2)
uj5u.com熱心網友回復:
您可以將 Book1 資料集添加到 ggplot 命令,方法是先旋轉它,然后使用geom_point:
Book1 <- pivot_longer(Book1, cols = everything())
ggplot()
geom_bar(aes(x= x_row, y = y_val), df, stat = 'identity')
geom_errorbar(aes(x = x_row, ymin=mean-sd, ymax=mean sd), df, width=.2)
geom_point(aes(x = name, y = value, color = name), Book1, size = 5)

資料
df <- read.table(header = T, text = "id A B C D E
1 3 3 2 2 2
2 NA 2 NA 3 1
3 1 3 3 1 1")
Book1 <- df[,-1]
x_row = names(Book1)
y_val = colMeans(Book1, na.rm = TRUE)
sd_val = sapply(Book1, sd, na.rm = TRUE)
df = data.frame(x_name = x_row, mean=y_val, sd = sd_val)
uj5u.com熱心網友回復:
[![library(tidyverse)
Book1<- data.frame(A= c(3, NA, 1),
B= c(3,2, 3),
C= c(2, NA, 3),
D= c(2, 3, 1),
E= c(2, 1, 1)
)
x_row = names(Book1)
y_val = colMeans(Book1, na.rm = TRUE)
sd_val = sapply(Book1, sd, na.rm = TRUE)
df = data.frame(x_name = x_row, mean=y_val, sd = sd_val)
round(df$mean, digits = 2)-> df$mean
ggplot(df, aes(x= x_row, y = y_val,fill = x_row ))
geom_bar(stat = 'identity')
geom_errorbar(aes(ymin=mean-sd, ymax=mean sd), width=.2)
geom_text(aes(label = mean), vjust = -0.4, hjust= -0.2)][1]][1]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/427661.html
