gpt4 book ai didi

R在轴线处打破线型规则

转载 作者:行者123 更新时间:2023-12-02 02:42:32 26 4
gpt4 key购买 nike

我正在尝试根据数据框中名为 TB 的列使用不同的线型绘制 2 个变量。下面显示的是我使用的代码:

q=ggplot()+geom_line(aes(deg_b,glim_f,colour=state,linetype=TB),min_splits_mp)+
scale_linetype_manual(values=c(1,4))+
geom_point(data = min_splits_mp, mapping = aes(x = deg_b, y = glim_f,colour=state, shape=TB,size=TB)) +
scale_shape_manual(values=c(0,4))+
scale_size_manual(values=c(3,4))+
scale_color_manual(values=c("blue","red"))+
ggtitle(paste(domain," Degredation vs best_split(Both tiebreaks)"))
print(q)

TB 列是离散的。

当我运行这段代码时,绘制了以下内容: enter image description here

为完整起见,这里是我使用的数据:

      State         deg_b  glim_F   TB
1 7,5,9,2,1,3,6,0,8,4 0 3 Average case
2 6,2,4,8,3,0,5,9,1,7 0 9 Average case
3 6,2,4,8,3,0,5,9,1,7 0 10 Average case
4 6,2,4,8,3,0,5,9,1,7 0 9 Average case
5 6,2,4,8,3,0,5,9,1,7 0 10 Average case
6 7,5,9,2,1,3,6,0,8,4 1 5 Average case
7 6,2,4,8,3,0,5,9,1,7 1 5 Average case
8 7,5,9,2,1,3,6,0,8,4 2 5 Average case
9 6,2,4,8,3,0,5,9,1,7 2 5 Average case
10 7,5,9,2,1,3,6,0,8,4 3 5 Average case
11 6,2,4,8,3,0,5,9,1,7 3 5 Average case
12 7,5,9,2,1,3,6,0,8,4 0 9 Best TB
13 7,5,9,2,1,3,6,0,8,4 0 10 Best TB
14 7,5,9,2,1,3,6,0,8,4 0 8 Best TB
15 7,5,9,2,1,3,6,0,8,4 0 9 Best TB
16 7,5,9,2,1,3,6,0,8,4 0 10 Best TB
17 6,2,4,8,3,0,5,9,1,7 0 0 Best TB
18 6,2,4,8,3,0,5,9,1,7 0 1 Best TB
19 6,2,4,8,3,0,5,9,1,7 0 2 Best TB
20 6,2,4,8,3,0,5,9,1,7 0 3 Best TB
21 6,2,4,8,3,0,5,9,1,7 0 4 Best TB
22 6,2,4,8,3,0,5,9,1,7 0 5 Best TB
23 6,2,4,8,3,0,5,9,1,7 0 6 Best TB
24 6,2,4,8,3,0,5,9,1,7 0 7 Best TB
25 6,2,4,8,3,0,5,9,1,7 0 8 Best TB
26 6,2,4,8,3,0,5,9,1,7 0 9 Best TB
27 6,2,4,8,3,0,5,9,1,7 0 10 Best TB
28 6,2,4,8,3,0,5,9,1,7 0 0 Best TB
29 6,2,4,8,3,0,5,9,1,7 0 1 Best TB
30 6,2,4,8,3,0,5,9,1,7 0 2 Best TB
31 6,2,4,8,3,0,5,9,1,7 0 3 Best TB
32 6,2,4,8,3,0,5,9,1,7 0 4 Best TB
33 6,2,4,8,3,0,5,9,1,7 0 5 Best TB
34 6,2,4,8,3,0,5,9,1,7 0 6 Best TB
35 6,2,4,8,3,0,5,9,1,7 0 7 Best TB
36 6,2,4,8,3,0,5,9,1,7 0 8 Best TB
37 6,2,4,8,3,0,5,9,1,7 0 9 Best TB
38 6,2,4,8,3,0,5,9,1,7 0 10 Best TB
39 7,5,9,2,1,3,6,0,8,4 1 5 Best TB
40 7,5,9,2,1,3,6,0,8,4 1 4 Best TB
41 6,2,4,8,3,0,5,9,1,7 1 6 Best TB
42 6,2,4,8,3,0,5,9,1,7 1 5 Best TB
43 7,5,9,2,1,3,6,0,8,4 2 6 Best TB
44 7,5,9,2,1,3,6,0,8,4 2 5 Best TB
45 6,2,4,8,3,0,5,9,1,7 2 6 Best TB
46 6,2,4,8,3,0,5,9,1,7 2 5 Best TB
47 7,5,9,2,1,3,6,0,8,4 3 6 Best TB
48 7,5,9,2,1,3,6,0,8,4 3 5 Best TB
49 6,2,4,8,3,0,5,9,1,7 3 5 Best TB
50 6,2,4,8,3,0,5,9,1,7 3 4 Best TB

请注意,最好的 TB 应该在点之间有一条虚线(例如,风琴圈中的线)。然而奇怪的是,在 deg_b=0 时情况并非如此,其中蓝色 X 之间的线是一条未断开的虚线(见黑色圆圈)。为什么是这样?

最佳答案

如果没有看到你的数据很难确定,但我猜 deg_b=0 处的垂直蓝线是重叠绘制两条或多条线的结果,这些线相对于每条线略有偏移(沿着线的方向)其他,创建破折号的外观,其中每条过度绘制的线单独是点划线。

例如,请注意下图中下方的部分线看起来是虚线,即使两条单独的重绘线是点划线:

d = data.frame(x = c(1, 5, 1, 4, 2, 6),
y = c(1, 5, 2, 5, 2, 6),
lt = rep(c("A","B","A"), each=2),
group = rep(c("a","b","c"), each=2))

ggplot(d, aes(x, y, linetype=lt, group=group)) +
geom_line(size=0.5) +
scale_linetype_manual(values=c(4,1)) +
theme_classic()

enter image description here

此外,您还可以缩短代码如下:

ggplot(min_splits_mp, aes(deg_b, glim_f, colour=state, linetype=TB)) +
geom_line()+
geom_point(aes(shape=TB, size=TB)) +
scale_linetype_manual(values=c(1,4)) +
scale_shape_manual(values=c(0,4)) +
scale_size_manual(values=c(3,4)) +
scale_color_manual(values=c("blue","red"))+
ggtitle(paste(domain," Degredation vs best_split(Both tiebreaks)"))

如果您打算在每个 geom 中使用相同的数据框,您可以将数据框放在对 ggplot 的主调用中,而不是在每个 geom 中重复它。同样,适用于所有 geom 的美学映射(aes 中的内容)也可以放在主 ggplot 调用中,而不是在每个 geom 中重复它们。唯一需要在 geom_point 中的映射是 size=TB,因为您不希望线宽因 TB 的不同级别而改变>.

关于R在轴线处打破线型规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com