【问题标题】:How to create a scatter plot from a multi-column data frame? [duplicate]如何从多列数据框中创建散点图? [复制]
【发布时间】:2018-10-06 02:01:00
【问题描述】:

我正在尝试生成存储在数据框中的实验室测量的散点图。

我使用的数据是这样的:

> print(df)
   day         val1         val2         val3
1    1      9.26875     11.34072     11.26673
2    2     48.47862     48.35817     48.68534
3    3    140.17682    141.09102    142.95175
4    4    313.43012    313.69816    312.97293

每一行显示每天进行了哪些测量。

我想制作一个散点图来显示这一点。
最终结果会是 like this

我找到了无数关于如何制作散点图treating each column as a different object 的示例,这不是我想要做的。

我能找到最接近的东西是this question,但解释不清楚,我不明白为什么这个任务需要包reshape2ggplot2

任何人都可以给我任何指示吗?

最好的问候。

【问题讨论】:

  • 参见ggplot2.tidyverse.org/reference/geom_point.html,过去的示例一,看看您是否可以将您的数据框分解,使您的 val1、val2、val3 就像示例中的圆柱体因子。
  • 链接帖子有很多解决方案。我们需要reshape2 从宽到长格式重塑,然后使用 ggplot 进行绘图。还有matplot函数,看一遍所有的答案,不是都需要ggplot。

标签: r dataframe bioinformatics scatter-plot


【解决方案1】:

虽然不是必需的,但库提供的某些功能在基础 R 中不一定存在或容易找到。例如,您可以使用数据框制作简单的散点图:

df$day <- as.factor(df$day)
df <- melt(df)
plot(as.numeric(df$day),df$value)

如您所见,此通用图可以通过融合来实现,以将您的数据转换为长格式,其中 1 列用于您的因子,1 列用于您的值。但是,只需几行 ggplot,您就可以创建一个简单的图表,只需付出一点额外的努力,就可以提供更多信息。

library(ggplot2)
ggplot(df, aes(x=day,y=value, colour = variable)) + geom_point(position = position_dodge(width = .3))

你可以了解更多关于ggplot2here

【讨论】:

  • 谢谢。确实很短!我需要时间来解决这个问题。对于像我这样的新人来说,这并不容易理解。
  • 祝你好运。一开始可能会让人不知所措,因此从基本函数开始并不是一个坏主意。
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多