有没有办法控制ggplot中刻面上条带的大小?我尝试过使用strip.background=element_rect(size=n)但据我所知,它实际上没有做任何事情.这甚至可能吗?
我正在尝试将 ggplot 变成情节。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))
Run Code Online (Sandbox Code Playgroud)
这是我试图在其上运行的代码:
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"))
Run Code Online (Sandbox Code Playgroud)
(geom_smooth此处不呈现,但会处理完整数据。)
这是我从中得到的:
为什么图例显示为“(foo,1)”?
我尝试删除geom_smooth实际上解决了问题的 ,但我需要它 - 我如何保留它但修复图例?
谢谢!
更新:好的,我开始注释掉一些东西,看看会发生什么。如果我aes()从 中删除geom_smooth,也可以解决问题,只要我保持scale_colour_manual …
我正在创建一个包含一些绘图的 PDF 文件,但我还想在底部包含一些文本消息。由于我无法控制的原因,我无法在该系统上安装乳胶发行版,因此我无法编写 markdown 文件,但必须使用pdf().
当我只是使用print或catpdf 中没有显示任何内容时。我尝试sink()根据此处的答案使用,但这也不起作用:
pdf("filename.pdf")
sink("filename.pdf")
print("message")
sink()
dev.off()
Run Code Online (Sandbox Code Playgroud)
未收到错误消息,但创建的文件没有页面。
有任何想法吗?我正在考虑仅绘制仅文本图的解决方法,但我希望有一个更合理的解决方案。
我在 data.frame 中有以下数据tbl:
library(tibble)
tbl <- structure(list(
year = c(2007, 2008, 2008, 2009, 2009, 2010, 2010, 2010, 2011, 2011, 2011, 2011, 2012, 2012, 2012, 2013, 2013, 2013, 2014, 2014, 2014, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2017, 2017, 2017, 2018, 2018, 2018, NA),
Type = c("RLR", "PLR", "RLR", "PLR", "RLR", "PLR", "RLR", "RR", "PLR", "RLR", "RR", "Supplement", "PLR", "RLR", "RR", "PLR", "RLR", "RR", "PLR", "RLR", "RR", "LR", "PLR", "RLR", "RR", "LR", "Other", "PLR", "RR", "LR", "Other", …Run Code Online (Sandbox Code Playgroud) 我有一个df包含列A和的 data.frame B:
df <- data.frame(A = 1:5, B = 11:15)
Run Code Online (Sandbox Code Playgroud)
还有另一个 data.frame ,df2我通过各种计算构建它,最终具有通用列名称 X1 和 X2,我无法直接控制它们(因为它在某一点作为矩阵传递)。所以它最终会变成这样:
mtrx <- matrix(1:10, ncol = 2)
mtrx %>% data.frame()
Run Code Online (Sandbox Code Playgroud)
我想将 df2 中的列重命名为与 df 相同。当然,我可以在通过简单的分配完成构建 df2 后执行此操作:
names(df2)<-names(df)
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 有没有办法直接在管道内执行此操作?我似乎无法使用 dplyr::rename,因为它们必须采用 newname=oldname 的形式,而且我似乎无法对其进行矢量化。调用data.frame本身也是如此 - 据我所知,我不能只给它一个列名向量。我还缺少另一个选择吗?我希望是这样的
mtrx %>% data.frame() %>% rename(names(df))
Run Code Online (Sandbox Code Playgroud)
但这不起作用 - 给出错误Error: All arguments must be named。
干杯!
我试图想出一种以特定方式可视化一些李克特量表数据的方法。我什至不知道如何伪造它的样子,所以我希望我的解释足够了。
我有以下(假)数据:
n 个问题,每个问题有 5 个答案(非常同意、同意、不同意、非常不同意、不知道)
我想沿着中心轴可视化数据(最好使用 ggplot),以便两个“同意”答案位于左侧,两个“不同意”答案位于右侧,然后位于一个单独的块上一侧,代表“不知道”的块。它应该大致如下所示:
Q1: *****++++++++|------!! ?????
Q2: ****++++++|----!!!!!! ???????
Q3: **++++++|---!!! ??????????
*: strongly agree, +: agree, -: don't agree, !:strongly disagree, ?: don't know
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这种表示方式允许比较同意和不同意的实际数量,而不会隐藏有多少“不知道”。我陷入困境的是如何为不知道的情况创建第二个元素。有任何想法吗?
以下是一些虚假数据:
structure(list(Q = structure(1:3, .Label = c("Q1", "Q2", "Q3"
), class = "factor"), SA = c(25, 18, 12), A = c(30, 25, 15),
DA = c(25, 20, 25), SDA = c(10, 18, 25), DK = c(10, 19, 23
)), row.names = c(NA, -3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)