使用R

时间:2019-02-11 16:36:37

标签: r matrix vector bar-chart

我正在尝试使用矩阵形式的数字类型数据制作成条形图。我从中提取的数据帧将数据存储为字符串,因此我还需要将数据转换为数字类型。

制作向量

  

wt250 <-c(as.numeric(df $ WT.250 [which(df $ X ==“ Ifng”)]),as.numeric(df $ WT.250 [which(df $ X ==“ Prdm1“)]),as.numeric(df $ WT.250 [which(df $ X ==” Il2ra“)]),as.numeric(df $ WT.250 [which(df $ X ==” Cd69“ )])   wt50 <-c(as.numeric(df $ WT.50 [which(df $ X ==“ Ifng”)]),as.numeric(df $ WT.50 [which(df $ X ==“ Prdm1”) ]),as.numeric(df $ WT.50 [which(df $ X ==“ Il2ra”)]),as.numeric(df $ WT.50 [which(df $ X ==“ Cd69”)]) )   wt10 <-c(as.numeric(df $ WT.10 [which(df $ X ==“ Ifng”)]),as.numeric(df $ WT.10 [which(df $ X ==“ Prdm1”) ]),as.numeric(df $ WT.10 [which(df $ X ==“ Il2ra”)]))as.numeric(df $ WT.10 [which(df $ X ==“ Cd69”)])

制作矩阵

  

m <-矩阵(c(wt250,wt50,wt10),nrow = 3,ncol = 4,byrow = TRUE)

矢量以获取条形图的详细信息

  

名称<-c(“ WT-250”,“ WT-50”,“ WT-10”)   颜色<-c(“红色”,“橙色”,“黄色”,“绿色”)

绘制条形图

  

barplot(m,main =“ Genes”,ylab =“ Concentration”,names.arg =名称,col =颜色,旁边= TRUE)

我期望一个分组的条形图(彼此相邻的多个条形图)在x轴上具有WT-250,WT-50和WT-10,其中四个条形分别为红色,橙色,黄色和绿色。 相反,我收到以下错误消息: -0.01 * height中的错误:二进制运算符的非数字参数

1 个答案:

答案 0 :(得分:0)

如果要快速修复,请替换矩阵创建:

m <- matrix(c(wt250, wt50, wt10), nrow=3, ncol=4, byrow = TRUE)

通过

m <- matrix(c(wt250, wt50, wt10), nrow=4, ncol=3)

这样您现在就可以在列中使用向量了。

使用“ colnames”代替“ names”。 然后您的代码应该工作了,barplot将能够绘制您想要的内容。

示例:

mat <- matrix(1:12, nrow = 4, ncol = 3)
colnames(mat) <- letters[1:3]
rownames(mat) <- letters[23:26]

barplot(mat,col = c("red", "blue", "cyan", "orange"), beside = TRUE)

Grouped_bar_chart