2017-07-25 242 views
1

我有3列,Row.names,xy如何繪製x軸上的Row.names,y軸上的x和y列?

如何在與y軸xy,x軸繪製Row.namesx VS 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

你有什麼打算通過繪製了'x'和'y'一行說明了什麼?繪製一條線意味着一種趨勢,就我所知,這些是不同變量的離散觀察結果,這意味着用線圖顯示數據是錯誤的。 – Mako212

+1

@ Mako212也許直方圖比較每個Row.name的x和y值?我只是想比較每個Row.name的x和y的值。 –

回答

2

讓我們使用ggplot2

R/GGPLOT2需要有數據在「長」格式(指每行一個觀察)創建許多類型的圖形。

我們使用melt進行轉換,使用Row.names作爲id.varsmelt(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)) 

enter image description here

+0

也許因爲我只能使用R的3.1.1,但我得到的錯誤正在運行。我可以加載軟件包,但運行ggplot代碼時,出現錯誤:「不知道如何自動爲類型函數的對象選擇比例,默認爲連續。」 eval中的錯誤(expr,envir,enclos):object '變量'未找到「 –

+0

」不知道如何自動選擇類型函數對象的縮放比例,默認爲連續的 eval(expr,envir,enclos)中的錯誤:找不到對象「變量」 –

+0

@JoeJohnson what是'df1'的列名(熔化的數據)? – Mako212