วิธีสร้างไดอะแกรมบาร์พล็อตโดยที่บาร์อยู่เคียงข้างกันใน R


9

ฉันต้องการสร้าง bardiagram สำหรับข้อมูลเหล่านี้ใน R (อ่านจากไฟล์ CVS):

Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20

ที่จะมีแผนภาพต่อไปนี้:

ข้อความแสดงแทน

ฉันเป็นผู้เริ่มต้นและฉันไม่รู้ว่าจะเริ่มต้นอย่างไร


1
? barplot การอ่านไฟล์ช่วยเหลือบางครั้งเร็วกว่าการโพสต์ในฟอรั่ม ...
RockScience

คุณต้องคิดก่อนว่า barplots ทำโดยฟังก์ชั่น barplot ... นี่ไม่ใช่เรื่องง่ายเมื่อคุณไม่รู้

สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม หากต้องการวิจารณ์หรือขอคำชี้แจงจากผู้แต่งโปรดแสดงความคิดเห็นใต้โพสต์ของพวกเขา
kjetil b halvorsen

คำตอบ:


13

ฉันจะสมมติว่าคุณสามารถนำเข้าข้อมูลของคุณใน 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อาร์กิวเมนต์สามารถใช้ในการเพิ่มช่องว่างระหว่างบาร์วาง

ข้อความแสดงแทน


13

นี่คือรุ่น 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")

ข้อความแสดงแทน


2
ฉันหวังว่าคุณจะไม่รังเกียจ แต่ฉันได้เพิ่มเอาท์พุทของคำสั่งของคุณ
csgillespie

@csgillespie ไม่มีปัญหา :)
teucer

1

ฉันต้องการอัปเดตคำตอบของ 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 "

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.