存储图形后,可以用ggsave保存图形,但是在管道中使用它会出现以下错误。我希望绘制并保存在同一(管道)命令中。
.Select(student => new FetchedStudent
{
SortingGroup = student.ToSortingGroup(),
... // other properties you need
}
public int CompareTo(FetchedStudent x, FetchedStudent y)
{
switch (x.SortingGroup)
{
case 1:
switch y.SortingGroup:
{
case 1: // x and y both in sorting group 1
return -UserIdComparer.CompareTo(x.UserId, y.UserId);
default: // x in sorting group 1, y in 2 / 3 / 4: x smaller
return -1;
}
case 2:
switch y.SortingGroup:
{
case 1: // x in sorting group 2; y in sorting group 1: x larger
return +1;
case 2: // x and y both in sorting group 2
return -nextFollowUpdateComparer.CompareTo(
x.Message.NextFollowUpdate,
y.Message.NextFollowUpdate);
}
我知道ggsave的参数首先是文件名,然后是图形,但是在包装器中切换此参数无效。另外,在ggsave命令中使用'filename ='和'plot ='无效。
no applicable method for 'grid.draw' applied to an object of class "c('LayerInstance', 'Layer', 'ggproto', 'gg')"
答案 0 :(得分:1)
如果您希望在一行中绘制和保存,请尝试
ggplot(diamonds, aes(x=cut)) +
geom_bar() +
ggsave('plot.bmp')
这将显示图并保存。
如果您不想显示绘图,只需将p <-
放在开头。
我偶然发现了这种用法,但没有找到任何文档。
答案 1 :(得分:0)
尝试一下:
if(!is_dir('/bucket/FileRun/'.$company->company.'/clients/'.$tk->client->name.'/files/'.$procedure->name.'/'.$date.'/'.$info_type->name))
{
$retun=@mkdir('/bucket/FileRun/'.$company->company.'/clients/'.$tk->client->name.'/files/'.$procedure->name.'/'.$date.'/'.$info_type->name, 0777, true);
}
编辑:: 也许有人知道一个步骤的答案,以防万一有人将我留在这里:
p<-iris %>%
ggplot(aes(Sepal.Length,fill=Species))+geom_bar()
p %>%
ggsave("sample.png",plot=.)
答案 2 :(得分:0)
正如akrun指出的那样,您需要将所有ggplot括在括号中。您还可以使用dot notation将对象传递到magrittr管道流中第一个参数之外的其他函数参数:
library(magrittr)
library(ggplot2)
data("diamonds")
(
ggplot(diamonds, aes(x=cut)) +
geom_bar()
) %>%
ggsave("plot.png", . , dpi = 100, width = 4, height = 4)