从下面的示例中,我尝试为代表不同“源”(s1和s2)的点设置不同的格式。我还想将一个“源”放在前面,这样,当两个源重叠时,如果两个源中的一个被另一个源中的点覆盖,则其中一个不会消失。
在我创建的示例中,看起来s2被带到了前面并且没有隐藏,但是在我的真实数据中,我具有相反的颜色和顺序分配,因此我看不到点。由于我不知道该如何控制,因此无法完全复制我的问题。
rm(list=ls())
library(ggplot2)
set.seed(1)
data<-rbind(
data.frame(poll=rnorm(20,20,5),zone="zone1",source="s1"),
data.frame(poll=rnorm(1,20,5),zone="zone1",source="s2"),
data.frame(poll=rnorm(20,16,1),zone="zone2",source="s1"),
data.frame(poll=rnorm(1,16,1),zone="zone2",source="s2"))
p<-ggplot(data, aes(x=zone, y=poll,fill=source)) +
geom_dotplot(binaxis='y', stackdir='center', binwidth=0.8,
method="histodot",stackratio=0.8, dotsize=0.5)
p
答案 0 :(得分:0)
我不确定是否有通用的解决方案可以完全满足您的需求。在您的示例数据中,其中一个来源始终比较普遍,因此可以放心使用,但是并非所有来源的组合以及这些来源的所有轮询值总是如此。
顺便说一句,我修改了您的示例代码,使其更加清晰:
ChromeDriver driver = new ChromeDriver();
driver.get(url);
Connect(driver, loginData);
if(isConnected(driver) == false)
reconnect(driver, loginData);
driver.findElement(By.id("element-id")).click();
if(isConnected(driver) == false)
reconnect(driver, loginData);
...
我建议使用data.frame(poll=rnorm(20,20,5),zone="zone1",source="s2"),
或dodge
来完全避开正面/背面挑战的替代策略。
stackgroups
ggplot(data, aes(x=zone, y=poll,fill=source)) +
geom_dotplot(binaxis='y', stackdir='center', binwidth=0.8,
position = position_dodge(width = 0.3),
method="histodot",stackratio=0.8, dotsize=0.5)
功能看起来并不完全成熟,但是通过调整可能会看起来更好:
stackgroups