R 调整ggplot2中的绘图
下面是我正在为一篇文章制作的图形代码。该图显示了我的数据集中一系列值的预测概率。沿着x轴是一个地毯图,显示了贸易份额价值的分布(我提供了代码和图形图像):R 调整ggplot2中的绘图,r,ggplot2,R,Ggplot2,下面是我正在为一篇文章制作的图形代码。该图显示了我的数据集中一系列值的预测概率。沿着x轴是一个地毯图,显示了贸易份额价值的分布(我提供了代码和图形图像): sitc8绝对可能。下面是一个使用iris的示例,以及地毯中的动态条件。如果你愿意,你也可以做两块地毯 库(tidyverse) 虹膜%>% ggplot(aes(x=萼片长度,y=萼片宽度))+ 几何点()+ geom_地毯(aes(颜色=花瓣长度>3),侧面=“b”) #第二个示例,未显示输出 虹膜%>% ggplot(aes(x=萼片长
sitc8绝对可能。下面是一个使用iris的示例,以及地毯中的动态条件。如果你愿意,你也可以做两块地毯
库(tidyverse)
虹膜%>%
ggplot(aes(x=萼片长度,y=萼片宽度))+
几何点()+
geom_地毯(aes(颜色=花瓣长度>3),侧面=“b”)
#第二个示例,未显示输出
虹膜%>%
ggplot(aes(x=萼片长度,y=萼片宽度))+
几何点()+
geom_地毯(数据=子集(虹膜,花瓣长度>3),颜色=“黑色”,侧面=“b”)+
geom_rug(data=subset(iris,Petal.Length)当然可以。您只需在aes()
函数调用中添加color
参数即可geom_rug()
下面是一些创建虚拟数据帧的代码
library(tidyverse)
set.seed(42)
dummy_data <- tibble(x_var = rnorm(100),
y_var = abs(rnorm(100)) * x_var) %>%
rownames_to_column(var = "temp_row") %>%
mutate(color_id = if_else(as.numeric(temp_row) <= 50,
"Type A",
"Type B"))
更新:
在OP的评论之后,这里有一个更新版本。如果它是0和1的数字向量,您必须告诉ggplot
将其视为二分法变量。例如,您可以通过调用factor()
将其包装起来
对于颜色,我们可以使用scale\u color\u manual()
color\u id
现在是0和1的矢量
- 颜色现在映射到
因子(颜色id)
- 使用
scale\u color\u手册
库(tidyverse)
种子(42)
虚拟数据%
行名称到列(var=“temp\u row”)%>%
变异(颜色id=if\u else)(作为数字(临时行)这两种解决方案对我都不起作用。我认为问题在于,将颜色从黑色变为红色的变量是二分法。我希望它在0时保持黑色,在它为1时变为红色,同时映射到沿x轴的贸易份额值。我已更新了我的答案,并添加了一个基于on数字向量的黑色/红色二分法的解决方案非常感谢。我得到了我需要做的,我想;我可以让标签以适当的颜色显示,但地毯图仍然是黑色的。我会继续试验代码。我认为问题是,创建线条的数据与创建地毯图的数据不同,因为线条是通过计算生成的正在修改预测概率(仅包括100个观察值)。我终于让它工作了!再次感谢您的帮助!您的代码和关于您的回复都很有帮助。谢谢您;在修改了您的代码和下面的响应后,我能够弄清楚如何使我的图表正确显示。将数据细分是一种方法!
library(tidyverse)
set.seed(42)
dummy_data <- tibble(x_var = rnorm(100),
y_var = abs(rnorm(100)) * x_var) %>%
rownames_to_column(var = "temp_row") %>%
mutate(color_id = if_else(as.numeric(temp_row) <= 50,
"Type A",
"Type B"))
ggplot(data = dummy_data, mapping = aes(x = x_var, y = y_var)) +
geom_smooth(method = "lm") +
geom_rug(mapping = aes(color = color_id), sides = "b")