【发布时间】:2016-02-28 00:14:29
【问题描述】:
给定这样的数据框:
V1 V2 V3 V4 ... V25
1 0.3 0.2 0.0 0.0 0.0
2 0.0 0.0 0.1 0.15 0.0
...
我想将行名作为 x 轴,将列名(V1:V25)作为 y 轴,并在同一张图中绘制多个区域图。
所以我尝试了:
ggplot(topic_count, aes(x= row.names(topic_count),y = colnames(topic_count),group = colnames(topic_count))) + geom_point()
但得到Error: Aesthetics must be either length 1 or the same as the data (22): x, y 错误。
你知道如何正确地做吗?谢谢。
【问题讨论】:
-
预期的情节是什么样的?
-
如果我正确理解您的问题,您会想要将行名(在本例中为数字)添加为列,然后使用
tidyr之类的东西来重塑数据框。使用dplyr和tidyr、topic_count <- topic_count %>% mutate(row_names = row_number())和topic_count_deep <- topic_count %>% gather(cnames, cvals, -row_names)'. You can then plot withggplot(tc_deep, aes(row_names, cvals, group = cnames)) + geom_point()`的示例 -
@mtoto 图中应该有
25不同的图,row.names作为 x-asix 和Vn作为 y 轴 -
@steveb
Error in eval(expr, envir, enclos) : object 'row_names' not found -
@mtoto 您是否成功运行了第一个命令,
topic_count <- topic_count %>% mutate(row_names = row_number())?这将添加“row_names”。