【问题标题】:Graphics with multiple plots, multiple conditions and multiple lines具有多个绘图、多个条件和多条线的图形
【发布时间】:2017-09-06 12:07:12
【问题描述】:

我有一个如下所示的数据框:

var1 var2 var3 year value
AT   EA   1    02   ...
AT   EA   1    03   ...
AT   XY   2    02   ...
AT   XY   2    03   ...
BE   EA   1    02   ...
BE   EA   1    03   ...
BE   XY   2    02   ...
BE   XY   2    03   ...

Value 只是一个数值变量。我想要做的是生成一个图形,它在 y 轴上显示值,在 x 轴上显示年份。此外,我想要:

  • var1 的每个水平都有一个图(这将是 xyplot 中的因子条件)

  • var2 的每一级应该有不同的颜色

  • var3 的每个级别应该是不同类型的折线图(连续与虚线)

另外,我可以告诉 R 只使用特定级别的 var1 和 var2 来制作图形吗?例如。仅使用 var1 为“AT”或“FR”的观察结果,而不使用“BE”或“DE”的观察结果? var1 和 var2 在 data.frame 中都有 13 个级别。

编辑:data.frame 可以下载here。我尝试了以下方法:

library(lattice)
xyplot(value~year | factor(report_ctry), data=EA17_flows_ex, groups=factor(indicator), type="l")

【问题讨论】:

  • 欢迎来到 Stack Overflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
  • 我已编辑打开的帖子以包含 data.frame 和我尝试过的代码。

标签: r plot


【解决方案1】:

您好,我不确定您希望将var3 变成linetype。但是,由于它的大小不同。要为 var1var2 设置特定级别,只需在 ggplot 中或单独设置数据帧的子集(例如 subset(dataframe,var1 %in% [list with var1-values you want to look at] & var2 %in% [list with var2-values you want to look at]))

library("ggplot2")

plot = ggplot(dataframe,aes(year,value))+
       geom_point(aes(colour=var2,size=var3))+facet_wrap(~var1)

ggsave("plot.png",plot,width=200,height=200,unit="mm")

【讨论】:

  • 我想要一个显示依赖于 var1、var2 和 var3 的变量值的折线图。我添加了一个带有 data.frame 的链接以及我在开篇文章中尝试过的代码。如果我使用“linetype”而不是“size”,您的解决方案将有效。谢谢你。 :)
【解决方案2】:

也许类似的东西?代码未经测试。您应该提供一个小示例,以及您尝试过的方法和无效的方法,以获得最佳效果。

library(ggplot2)

# will display only those in the list, AT and FR in this case
subxy <- xy[xy$var %in% c("AT", "FR"), ] 

ggplot(subxy, aes(x = year, y = value, color = var2, group = as.factor(var3))) +
  theme_bw() +
  geom_point(position = "jitter", width = 0.25) +
  facet_wrap(~ var1)

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多