使用ggplot2和熔解在点图中绘制多个变量

时间:2015-10-15 12:02:09

标签: r plot ggplot2

我有一张包含以下数据的CSV:

 Hybrid    ON   OFF Model
1  1.022 1.033 0.939   283
2  0.988 1.016 1.068   283
3  1.012 0.958 1.872   283
4  1.073 5.476 0.907   283
5  1.054 0.952 0.902   283
6  0.992 0.941 0.908   283

我正在尝试使用此图像创建点图。

enter image description here

基本上红绿蓝分别是混合,开和关,在x轴上它们分组在'模型'上。我熟悉使用plot()创建简单的图,但我一直在阅读一些教程,这可以使用ggplot和melt ...来实现,它看起来有点先进。感谢是否有人可以提供一些指标。我在加载csv后尝试为不同的配置创建级别:

load <- read.csv("combined_temp.csv", sep="," , header=TRUE)    

df <- data.frame(Config= rep(c("Hybrid", "ON", "OFF")))

我想在此之后使用ggplot但不知道该怎么做..甚至不确定我是否正在进行复制。对不起,我是R的新手。

1 个答案:

答案 0 :(得分:0)

第一步是将数据重新整形为长格式,之后您可以使用ggplot2轻松制作这样的地图:

library(reshape2)
dfl <- melt(df, id = "Model")

library(ggplot2)
ggplot(dfl, aes(x = factor(Model), y = value)) +
  geom_point(aes(color = variable), shape = 1, size = 4, position = position_dodge(width = 0.4)) +
  theme_bw()

这导致以下情节:

enter image description here

出于说明的原因,我扩展并更改了数据。

使用过的数据:

df <- structure(list(Hybrid = c(1.022, 0.988, 1.012, 1.073, 1.054, 0.992, 2.022, 1.988, 2.012, 2.073, 2.054, 1.992), 
                     ON = c(1.033, 1.016, 0.958, 3.476, 0.952, 0.941, 2.033, 2.016, 1.958, 3.476, 1.952, 1.941),
                     OFF = c(0.939, 1.068, 1.872, 0.907, 0.902, 0.908, 2.939, 1.068, 1.872, 2.907, 2.902, 2.908),
                     Model = c(283L, 283L, 283L, 283L, 283L, 283L, 382L, 382L, 382L, 382L, 382L, 382L)),
                .Names = c("Hybrid", "ON", "OFF", "Model"), class = "data.frame", row.names = c(NA, -12L))