gpt4 book ai didi

r - R中ggplotly中图例的奇怪格式

转载 作者:行者123 更新时间:2023-12-03 14:03:30 26 4
gpt4 key购买 nike

我正在尝试将 ggplot 变成 plotly 。 ggplot 渲染得很好,但是当我通过 ggplotly 将其放入时,图例突然在标签后添加了括号和“,1”。

这是一个示例假数据:

sorted1<-data.frame(CommDate=c(as.Date("2017-09-12"), as.Date("2017-10-15")), CommName=c("Foo", "Bar"), PubB4=c(2,3))

这是我试图在其上运行的代码:
ggplotly(ggplot(sorted1, aes(x=as.Date(CommDate), y=PubB4))+
geom_smooth(level=0.0, aes(colour="Moving average"), se=FALSE)+
geom_point(aes(fill=CommName), size=4)+
expand_limits(y=c(0,4.5))+
geom_line(mapping=aes(y=4),colour="orangered3",size=1)+
geom_text(mapping=aes(y=4.2, x=min(sorted1$CommDate)+4), label="Target", size=3)+
xlab("Committee Date")+
guides(fill=guide_legend(title="Committee Names"), colour=guide_legend(title.theme=element_blank(),title=NULL))+
scale_x_date(labels = date_format("%b-%y"))+
theme_light()+
theme(plot.title=element_text(hjust=0.5, size=12),panel.grid.major.x = (element_blank()),
panel.grid.minor.x = (element_blank()),
axis.title = element_text(size=8), legend.title = element_text(size=10),
legend.text = element_text(size=8), legend.box = 'vertical', legend.spacing.y = unit(-2,"mm"))+
scale_colour_manual(name="",values="#0072B2"))

( geom_smooth 不会在此处呈现,但会处理完整数据。)

这是我从中得到的:

ggplotly result with misformatted legend

为什么图例显示为“(foo,1)”?

我尝试删除实际上解决了问题的 geom_smooth,但我需要它 - 我如何保留它但修复图例?

谢谢!

更新: 好的,我开始注释掉一些东西,看看会发生什么。如果我从 aes() 中删除 geom_smooth ,这也解决了问题,只要我保持 scale_colour_manual 注释掉。但我真的很想控制 geom_smooth 的美学,并将其包含在图例中。所以我正在取得进展,但还没有完全到位......

最佳答案

这是另一个优雅的解决方案。在引擎盖下,它检测是否有 plotly 图例名称选项可用,如果可用,则删除“(”和“,1)”​​。

library(ggplot2)
library(plotly)
library(stringr)
library(dplyr)

data = data.frame(Date=as.Date(c("2017-09-12","2017-10-15")), PubB4=c(2,3), category=c("Foo", "Bar"))

myplot = ggplotly(ggplot(data, aes(x=Date, y=PubB4))+
geom_hline(aes(yintercept=2.5, color="my line label"))+
geom_point(aes(fill=category), size=4))

for (i in 1:length(myplot$x$data)){
if (!is.null(myplot$x$data[[i]]$name)){
myplot$x$data[[i]]$name = gsub("\\(","",str_split(myplot$x$data[[i]]$name,",")[[1]][1])
}
}

myplot

plot result

关于r - R中ggplotly中图例的奇怪格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133395/

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