R中的堆叠条形图
我有一个如下的csv文件,我想做一个堆叠的条形图,x轴是链接列,y轴显示频率,每个条形图根据频率和频率分组。当我读取csv并将其交给条形图时,它不起作用。我搜索了很多,但所有的示例数据都是列联表的形式。我不知道我该怎么办R中的堆叠条形图,r,csv,stacked-chart,R,Csv,Stacked Chart,我有一个如下的csv文件,我想做一个堆叠的条形图,x轴是链接列,y轴显示频率,每个条形图根据频率和频率分组。当我读取csv并将其交给条形图时,它不起作用。我搜索了很多,但所有的示例数据都是列联表的形式。我不知道我该怎么办 link Freq_E Freq_S 1 tube.com 214 214 2 list.net 120 120 3 vector.com 119 118 4 4cdn.co 9
link Freq_E Freq_S
1 tube.com 214 214
2 list.net 120 120
3 vector.com 119 118
4 4cdn.co 95 96
您应该查看优秀的
ggplot2
库,尝试使用此代码片段作为示例-
df <- read.table(textConnection(
'link Freq_E Freq_S
tube.com 214 214
list.net 120 120
vector.com 119 118
4cdn.co 95 96'), header = TRUE)
library(ggplot2)
library(reshape2)
df <- melt(df, id = 'link')
ggplot(
data = df,
aes(
y = value,
x = link,
group = variable,
shape = variable,
fill = variable
)
) +
geom_bar(stat = "identity")
df“它不起作用”并不是我熟悉的R中的错误消息,但我猜您的问题是您试图在数据帧上使用条形图
,而您应该使用矩阵
或向量
假设您的data.frame
被称为“df”(定义见Codoremifa答案的开头),您可以尝试以下操作:
x <- as.matrix(df[-1]) ## Drop the first column since it's a character vector
rownames(x) <- df[, 1] ## Add the first column back in as the rownames
barplot(t(x)) ## Transpose the new matrix and plot it
x+1。与此问题无关,但read.table
有一个text
参数,因此您不再需要使用textConnection
。-)旧习惯难以改变:)简单搜索“R中的堆叠条形图”会得到多个重复项,例如,和。原来的海报对SO来说并不新鲜,也没有任何迹象表明他/她确实在努力寻找答案。我们对不配的人太好了。投票关闭。好吧,我无法将我的数据集格式化为barplot的适当输入,而您提到的上述示例解释了如何制作堆叠图。是最相似的一个,但仍然没有解决我的问题。拜托,那是虚伪的。您没有提供自己的代码,也没有任何迹象表明您尝试了任何方法来解决问题。这里有几十个关于重塑数据的现有问题和答案,这些问题和答案本可以为您提供您想要的答案。我想,ggplot是另一个老习惯。我几乎从未使用过基本绘图函数+1.@Codoremifa,我实际上并不经常绘图,而且我已经习惯了基本绘图,只用于探索我的数据。因此,“ggplot”语法对我来说并不自然。我把它放在“学习”列表上已经有一段时间了,但还没有开始学习。你能解释一下df[-1]的作用吗?@Marjan,我在代码中添加了一些注释,这样你就可以看到正在做什么了。R中的矩阵
不能有多种数据类型(数字、字符等),因此我只创建了数字部分的矩阵,这意味着必须删除第一列(df[-1]
)。