R 如何使用y轴上的x和y列在x轴上打印行名?

R 如何使用y轴上的x和y列在x轴上打印行名?,r,plot,R,Plot,我有3列,Row.names,x,和y 如何在x轴上绘制行名称,在y轴上绘制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

我有3列,
Row.names
x
,和
y

如何在x轴上绘制
行名称
,在y轴上绘制
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

让我们使用
ggplot2

R/ggplot2需要具有“长”格式的数据(即每行一个观察值)才能创建多种类型的图形

我们使用
melt
进行转换,使用
Row.names
作为
id.vars
melt(data,id.vars=“Row.names”)
。然后我们将行名称指定给x轴,将由
melt
生成的列(称为
value
)指定给y值。最后,我们使用
geom_bar
为x和y值着色,并使用
position=“dodge”
将它们分割为单独的条

require(ggplot2)
要求(2)

df1通过为
x
y
绘制一条线,您打算显示什么?画一条线意味着一种趋势,据我所知,这是对不同变量的离散观察,这意味着用线图显示数据是错误的。@Mako212可能是一个比较每行x和y值的直方图。name?我只想比较每一行的x和y的值。name可能是因为我只能使用R的3.1.1,但是运行这个会出错。我可以加载包,但在运行ggplot代码时,我得到一个错误:“不知道如何自动为函数类型的对象选择比例。默认为连续。eval(expr、envir、enclose)中出错:找不到对象‘variable’”“不知道如何为函数类型的对象自动选择比例。默认为连续。eval(expr、envir、enclose)中的错误:未找到对象“variable”@JoeJohnson
df1
(融化的数据)的列名是什么?如何找到?当我查看(df1)时,我得到一个错误“查看中的错误:无法将类型“closure”强制为“character”类型的向量”不要介意这个错误,df1的列名是:Row.names、variable和value
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))