我有3列,Row.names
,x
和y
。
如何在y轴上使用Row.names
和x
在x轴上绘制y
,以比较x
与y
的行?
Row.names x y
1 bare_nuclei NA NA
2 bland_chromatin 5.979253 2.100437
3 clump_thickness 7.195021 2.956332
4 marginal_adhesion 5.547718 1.364629
5 mitoses 2.589212 1.063319
6 normal_nucleoli 5.863071 1.290393
7 single_eipthelial 5.298755 2.120087
8 uniformity_cell_shape 6.560166 1.443231
9 uniformity_cell_size 6.572614 1.325328
答案 0 :(得分:2)
让我们使用ggplot2
:
R / ggplot2需要将数据放在" long"格式(意味着每行一个观察)来创建许多类型的图形。
我们使用melt
进行转换,使用Row.names
作为id.vars
:melt(data,id.vars="Row.names")
。然后我们将行名称分配给x轴,将melt
生成的列称为value
到y值。最后,我们使用geom_bar
为您的x和y值着色,并使用position="dodge"
将它们拆分为单独的条。
require(ggplot2)
require(reshape2)
df1 <- melt(data,"Row.names")
g1 <- ggplot(df1, aes(x = Row.names, y=value)) +
geom_bar(aes(fill=variable),stat="identity", position ="dodge") +
theme_bw()+
theme(axis.text.x = element_text(angle=-40, hjust=.1))