Tôi muốn tạo một bardiagram cho các dữ liệu này trong R (đọc từ tệp CVS):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
để có sơ đồ sau:
Tôi là người mới bắt đầu và tôi thậm chí không biết bắt đầu như thế nào.
Tôi muốn tạo một bardiagram cho các dữ liệu này trong R (đọc từ tệp CVS):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
để có sơ đồ sau:
Tôi là người mới bắt đầu và tôi thậm chí không biết bắt đầu như thế nào.
Câu trả lời:
Tôi sẽ giả định rằng bạn có thể nhập dữ liệu của mình trong R bằng read.table()
hoặc các read.csv()
chức năng tay ngắn . Sau đó, bạn có thể áp dụng bất kỳ chức năng tóm tắt mà bạn muốn, ví dụ table
hoặc mean
, như sau:
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
hoặc là
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
Ý tưởng là kết thúc với một ma trận hoặc bảng cho các giá trị tóm tắt bạn muốn hiển thị.
Đối với đầu ra đồ họa, hãy xem barplot()
chức năng với tùy chọn beside=TRUE
, ví dụ:
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")
Đối space
số có thể được sử dụng để thêm một khoảng trắng giữa các thanh xen kẽ.
Đây là phiên bản 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")
Tôi muốn cập nhật câu trả lời của teucer để phản ánh việc định hình lại2.
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")
Lưu ý rằng câu trả lời của teucer tạo ra lỗi "Lỗi trong eval (expr, envir, encos): object 'metric' không tìm thấy" với reshape2 vì reshape2 sử dụng biến.name thay vì biến_name.
Tôi cũng thấy rằng tôi cần thêm stat = "nhận dạng" vào hàm geom_bar vì nếu không, nó đã đưa ra "Lỗi: Ánh xạ một biến vào y và cũng sử dụng stat =" bin "."