如何用ggtern修改三元图
How to modify the ternary diagrams with ggtern
如何用ggtern修改三元图
我用下面的代码绘制了三元图,想做一些修改:
- 修改x,y,z的刻度标签为概率数(0.2 0.4 0.6 0.8 1.0)
- 去掉x,y,z的侧边箭头和相应的文字
- 删除第二个图例 (gray/white)
- 将第一个图例中的文本替换为“high”和“low”
library(ggtern)
set.seed(1)
plot <- ggtern(data = data.frame(x = runif(100),
y = runif(100),
z = runif(100)),
aes(x, y, z))
plot + stat_density_tern(geom = 'polygon',
n = 400,
aes(fill = ..level..,
alpha = ..level..)) +
geom_point() +
theme_rgbg() +
theme(legend.justification=c(0,1), legend.position=c(0,1)) +
#theme_gridsontop() +
labs(title = "Example Density/Contour Plot") +
scale_fill_gradient(low = "blue",high = "red") +
# scale_color_gradient(low="yellow",high="red") +
guides(fill = guide_colorbar(order=1),color="none")
尝试以下修改:
- 在
ggtern
中使用的三个连续刻度中,刻度标签由参数 labels =
控制。左侧边缘为 scale_L_continuous
,右侧边缘为 scale_R_continuous
,底部边缘为 scale_T_continuous
。将中断设置为 c(0, 0.2, 0.4, 0.6, 0.8, 1)
(或更简洁地使用 0:5 / 5
),并将 labels
设置为相同的值。
- 您可以通过在绘图中添加
theme_noarrows()
来删除箭头。
- 使用
guides(alpha = guide_none())
删除 alpha 图例(灰色和白色的)
- 您可以通过将
labels
作为参数传递给 scale_fill_gradient
来更改填充图例(蓝色-红色)的标签。由于有 5 个中断 (1:5),我们传递五个标签:c("low", "", "", "", "high")
这是一个完整的代表。如果您在新的 R 会话中精确地剪切并粘贴此代码,您应该得到完全相同的图:
library(ggtern)
set.seed(1)
ggtern(data = data.frame(x = runif(100), y = runif(100), z = runif(100)),
mapping = aes(x, y, z = z)) +
stat_density_tern(geom = 'polygon', n = 400,
aes(fill = ..level.., alpha = ..level..)) +
geom_point() +
scale_fill_gradient(low = "blue", high = "red", name = "", breaks = 1:5,
labels = c("low", "", "", "", "high")) +
scale_L_continuous(breaks = 0:5 / 5, labels = 0:5/ 5) +
scale_R_continuous(breaks = 0:5 / 5, labels = 0:5/ 5) +
scale_T_continuous(breaks = 0:5 / 5, labels = 0:5/ 5) +
labs(title = "Example Density/Contour Plot") +
guides(fill = guide_colorbar(order = 1), alpha = guide_none()) +
theme_rgbg() +
theme_noarrows() +
theme(legend.justification = c(0, 1),
legend.position = c(0, 1))
由 reprex package (v0.3.0)
于 2020-11-24 创建
如何用ggtern修改三元图
我用下面的代码绘制了三元图,想做一些修改:
- 修改x,y,z的刻度标签为概率数(0.2 0.4 0.6 0.8 1.0)
- 去掉x,y,z的侧边箭头和相应的文字
- 删除第二个图例 (gray/white)
- 将第一个图例中的文本替换为“high”和“low”
library(ggtern) set.seed(1) plot <- ggtern(data = data.frame(x = runif(100), y = runif(100), z = runif(100)), aes(x, y, z)) plot + stat_density_tern(geom = 'polygon', n = 400, aes(fill = ..level.., alpha = ..level..)) + geom_point() + theme_rgbg() + theme(legend.justification=c(0,1), legend.position=c(0,1)) + #theme_gridsontop() + labs(title = "Example Density/Contour Plot") + scale_fill_gradient(low = "blue",high = "red") + # scale_color_gradient(low="yellow",high="red") + guides(fill = guide_colorbar(order=1),color="none")
尝试以下修改:
- 在
ggtern
中使用的三个连续刻度中,刻度标签由参数labels =
控制。左侧边缘为scale_L_continuous
,右侧边缘为scale_R_continuous
,底部边缘为scale_T_continuous
。将中断设置为c(0, 0.2, 0.4, 0.6, 0.8, 1)
(或更简洁地使用0:5 / 5
),并将labels
设置为相同的值。 - 您可以通过在绘图中添加
theme_noarrows()
来删除箭头。 - 使用
guides(alpha = guide_none())
删除 alpha 图例(灰色和白色的)
- 您可以通过将
labels
作为参数传递给scale_fill_gradient
来更改填充图例(蓝色-红色)的标签。由于有 5 个中断 (1:5),我们传递五个标签:c("low", "", "", "", "high")
这是一个完整的代表。如果您在新的 R 会话中精确地剪切并粘贴此代码,您应该得到完全相同的图:
library(ggtern)
set.seed(1)
ggtern(data = data.frame(x = runif(100), y = runif(100), z = runif(100)),
mapping = aes(x, y, z = z)) +
stat_density_tern(geom = 'polygon', n = 400,
aes(fill = ..level.., alpha = ..level..)) +
geom_point() +
scale_fill_gradient(low = "blue", high = "red", name = "", breaks = 1:5,
labels = c("low", "", "", "", "high")) +
scale_L_continuous(breaks = 0:5 / 5, labels = 0:5/ 5) +
scale_R_continuous(breaks = 0:5 / 5, labels = 0:5/ 5) +
scale_T_continuous(breaks = 0:5 / 5, labels = 0:5/ 5) +
labs(title = "Example Density/Contour Plot") +
guides(fill = guide_colorbar(order = 1), alpha = guide_none()) +
theme_rgbg() +
theme_noarrows() +
theme(legend.justification = c(0, 1),
legend.position = c(0, 1))
由 reprex package (v0.3.0)
于 2020-11-24 创建