2015-02-10 44 views
2

我有這個數據幀如何在R中包含字符和數字的barplot數據框?

product Total 
AF064 21 
AF065 24 
AF066 1 
AF067 13 
AF068 6 
AF069 3 
AF070 5 
AF071 1 
AF072 3 
AF073 3 
AF074 5 
AF075 2 
AF076 28 
AF077 0 
AF078 3 
AF079 10 
AF080 0 
AF081 13 
AF082 0 
AF083 3 
AF084 3 
AF085 2 
AF086 3 
AF087 0 
AF088 1 
AF089 1 
AF090 2 
AF091 4 
AF092 2 
AF093 3 
AF094 2 
AF095 3 
AF096 1 
AF097 2 
AF098 2 
AF099 1 
AF100 21 
AF101 1 
AF102 3 

我想從這個數據幀做出barplots。

我的代碼是

barplot(product,Total) 
**Error in -0.01 * height : non-numeric argument to binary operator** 

我也試過

barplot(dataframe) 
**Error in barplot.default(dataframe) : 
    'height' must be a vector or a matrix** 

我也試着as.character的產品,但仍不能做圖。 我非常感謝你的幫助,非常感謝。

回答

0

您第一次嘗試差不多吧,

attach(dataframe) 
barplot(Total,names.arg=product) 

會做到這一點。

另一種可能性是將df轉換爲矩陣並將其送入barplot()函數。

barplot()功能將以此爲矩陣中的每一列了吧,所以你需要轉數據框的直接轉換

m <- t(matrix(dataframe[,2],dimnames=dataframe[1])) 
barplot(m) 

如果你有多個列中(例如,2〜3)你的數據幀就可以把所有的人都在基質中,如行:

m <- t(as.matrix(dataframe[,2:3])) 
colnames(m) <- dataframe[,1] 
barplot(m,legend=T) 

至於你最後的評論,你可以橫着打開的標籤,並調整它們一點點。即直接使用數據框

attach(dataframe) 
barplot(Total,names.arg=product,cex.names=0.6,las=2) 

或使用矩陣m

barplot(m,cex.names=0.6,las=2) 
+0

這也有很大幫助,現在我擁有X軸上每個小節的所有名稱。感謝所有的糾正,我只知道這些R函數的一些,但現在我知道更好。真的很感謝幫助! – user3292755 2015-02-10 12:14:19

1

您想讓barplot的參數成爲高度向量。您可以使用這樣的事情:

barplot(dataframe[,2], names.arg=dataframe[,1]) 
+0

是的,我得到了正確的圖形,多感謝您的幫助。但X軸沒有在一個圖表中顯示每個產品。如何在不延長圖形的情況下顯示它們? – user3292755 2015-02-10 03:23:29

相關問題