因此,一些帖子已经解决了如何在ggplot中删除不需要的图例。
发布到wonderful answer的"Remove extra legends in ggplot2" 建议:
对于任何映射变量,您可以在相应的
import numpy as np import matplotlib.pyplot as plt import scipy.integrate as integrate import scipy.special as special mu1, sigma1 = 0, 0.1 s1 = np.random.normal(mu1, sigma1, 10000) mu2, sigma2 = 0.8, 0.3 s2 = np.random.normal(mu2, sigma2, 10000) plt.figure(1) plt.title('Histogram of a 2D-Gaussian Distribution') bins1 = plt.hist(s1, 100) bins2 = plt.hist(s2, 100) plt.show() plt.figure(2) plt.title('2D-Gaussian Distribution') bins = plt.hist2d(s1, s2, 100) cb = plt.colorbar() cb.set_label('counts in bin') plt.show()
中使用guide = 'none'
来压制图例的外观......
但是,我通过添加scale_
美学来创建不需要的图例时出现问题。
我尝试了缩放方法,但它似乎不适用于组参数:
group
搜索here没有提供任何有关修改群体美学的正确函数调用的见解。
用户@joran provided以上链接帖子中的以下见解:
这是因为
could not find function "scale_group"
美学本身不产生任何尺度或指南。它总是在修改别的东西。你永远不会得到group
美学的传奇。
示例
所以我可以将group
添加到包含show.legend = FALSE
的函数调用中,以删除该函数的任何图例,但如果我想要一些其他,则无法解决此问题该调用的部分(即美学)将包含在图例中。
group
为函数调用添加#Set Up Example:
library(lme4)
library(ggplot2)
mod <- lmer(mpg ~ hp + (1 |cyl), data = mtcars)
pred <- predict(mod,re.form = NA)
pdat <- data.frame(mtcars[,c('hp','cyl')], mpg = pred, up = pred+1, low = pred-1)
按预期工作:
show.legend = F
但是当我想根据相同的gp <-
ggplot(data = mtcars, aes(x = hp, y = mpg, color = cyl, group = cyl), show.legend = F) +
geom_point(aes(group = cyl),show.legend = F) +
facet_wrap(~cyl) +
geom_line(data = pdat, aes(group = cyl),show.legend = F, color = 'orange')
为geom_ribbon
填充添加图例时(因此不能使用group
参数),我再次获得show.legend = F
的传奇......
group
输出:
答案 0 :(得分:0)
最后一个geom覆盖第一个geom,你可以试试这个
ggplot(data = mtcars, aes(x = hp, y = mpg, color = cyl, group = cyl), show.legend = F) +
geom_point(aes(group = cyl)) +
facet_wrap(~cyl) +
geom_line(data = pdat, aes(group = cyl),color = 'orange')
gp + geom_ribbon(data = pdat, aes(ymin = low, ymax = up, group = cyl, fill = 'mod'), alpha = 0.3) +
scale_fill_manual(values=c("orange"), name="model")+
scale_color_continuous(guide ='none')
顺便说一下,我的想法来自您在顶部发布的链接。