如何在 R 中制作分面散点图?

How do I make a Faceted Scatterplot in R?

我是 R 的新手,我已经研究这个问题一段时间了,需要一些帮助。我有一个 CSV 文件(称为 cleaned_doc),其中包含每个国家/地区销售的产品的评级和百分比,我想比较 2 个国家/地区的分面散点图,其中 2 个方面的所有产品在这些特定国家/地区销售起源。

当我尝试这样做时

ggplot(data = cleaned_doc, aes(Percent, Rating)) +
  geom_point() +
  labs( y = "Rating", x = "Percent") + 
  facet_grid( ~ Origin ) 

我得到了列出的所有国家/地区的分面散点图。但是我只想比较 2(在这个例子中我选择了德国和法国)还有更多的组件我想稍后添加但这些主要是美学所以我现在只想保持简单。根据我在 Whosebug 和其他地方看到的内容,我尝试这样做

countries <- gather(cleaned_doc, key="measure", value="value", c(Origin["Germany"], Origin["France"]))

answer2 <- ggplot(data = cleaned_doc, aes(Percent, Rating)) +
  geom_point() +
  labs( y = "Rating", x = "Percent") + 
  facet_grid(~ countries )

然而我得到以下错误

Error: At least one layer must contain all faceting variables: `countries`.
* Plot is missing `countries`
* Layer 1 is missing `countries`

而且我真的不确定这意味着什么以及我做错了什么。所以我真的很感激任何帮助。

您只需要创建一个不包含其他国家/地区的数据框。您可以使用 filter 或像这样在基 R 中执行此操作:

cleaned_doc2 <- cleaned_doc[which(cleaned_doc$Origin == "Germany" | cleaned_doc$Origin == "France"),]
cleaned_doc2$Origin <- as.character(cleaned_doc2$Origin)

ggplot(data = cleaned_doc, aes(Percent, Rating)) +
  geom_point() +
  labs( y = "Rating", x = "Percent") + 
  facet_grid( ~ Origin )