ฉันต้องการสร้าง bardiagram สำหรับข้อมูลเหล่านี้ใน R (อ่านจากไฟล์ CVS):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
ที่จะมีแผนภาพต่อไปนี้:
ฉันเป็นผู้เริ่มต้นและฉันไม่รู้ว่าจะเริ่มต้นอย่างไร
ฉันต้องการสร้าง bardiagram สำหรับข้อมูลเหล่านี้ใน R (อ่านจากไฟล์ CVS):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
ที่จะมีแผนภาพต่อไปนี้:
ฉันเป็นผู้เริ่มต้นและฉันไม่รู้ว่าจะเริ่มต้นอย่างไร
คำตอบ:
ฉันจะสมมติว่าคุณสามารถนำเข้าข้อมูลของคุณใน R ด้วยread.table()
หรือread.csv()
ฟังก์ชั่นทางลัด จากนั้นคุณสามารถใช้ฟังก์ชันสรุปใด ๆ ที่คุณต้องการเช่นtable
หรือmean
ด้านล่าง:
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
หรือ
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
แนวคิดคือการจบด้วยเมทริกซ์หรือตารางสำหรับค่าสรุปที่คุณต้องการแสดง
สำหรับเอาต์พุตกราฟิกดูที่barplot()
ฟังก์ชันด้วยตัวเลือกbeside=TRUE
เช่น
barplot(matrix(c(5,3,8,9),nr=2), beside=T,
col=c("aquamarine3","coral"),
names.arg=LETTERS[1:2])
legend("topleft", c("A","B"), pch=15,
col=c("aquamarine3","coral"),
bty="n")
space
อาร์กิวเมนต์สามารถใช้ในการเพิ่มช่องว่างระหว่างบาร์วาง
นี่คือรุ่น ggplot:
library(ggplot2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable_name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge")
ฉันต้องการอัปเดตคำตอบของ teucer เพื่อสะท้อน reshape2
library(ggplot2)
library(reshape2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable.name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge",stat="identity")
โปรดทราบว่าคำตอบของ teucer ทำให้เกิดข้อผิดพลาด "ข้อผิดพลาดใน eval (expr, envir, enclos): วัตถุ 'metric' ไม่พบ" ด้วย reshape2 เนื่องจาก reshape2 ใช้ variable.name แทน variable_name
ฉันยังพบว่าฉันต้องการเพิ่ม stat = "identity" ในฟังก์ชัน geom_bar เพราะไม่เช่นนั้นจะให้ "ข้อผิดพลาด: การแมปตัวแปรกับ y และใช้ stat =" bin "