Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 调整ggplot2中的绘图_R_Ggplot2 - Fatal编程技术网

R 调整ggplot2中的绘图

R 调整ggplot2中的绘图,r,ggplot2,R,Ggplot2,下面是我正在为一篇文章制作的图形代码。该图显示了我的数据集中一系列值的预测概率。沿着x轴是一个地毯图,显示了贸易份额价值的分布(我提供了代码和图形图像): sitc8绝对可能。下面是一个使用iris的示例,以及地毯中的动态条件。如果你愿意,你也可以做两块地毯 库(tidyverse) 虹膜%>% ggplot(aes(x=萼片长度,y=萼片宽度))+ 几何点()+ geom_地毯(aes(颜色=花瓣长度>3),侧面=“b”) #第二个示例,未显示输出 虹膜%>% ggplot(aes(x=萼片长

下面是我正在为一篇文章制作的图形代码。该图显示了我的数据集中一系列值的预测概率。沿着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")