小编Eco*_*Tom的帖子

在图例ggplot2周围画一个框

我创建了一个带有自定义图例的情节ggplot2.我试图在图例中的所有项目周围绘制一个框,但是我只能在每个单独的项目周围绘制一个框.如何围绕所有项目只创建一个框?

library(ggplot2)

ggplot(mpg, aes(displ, cty)) + 
  geom_point(aes(shape = "Data")) +
  stat_smooth(aes(linetype = "Regression"), method = "lm", 
              formula = y ~ x, se = FALSE, colour = 1, size = 0.5) +
  scale_shape_manual(values = 1) +
  labs(shape = "", linetype = "") +
  theme_classic() + 
  theme(panel.border = element_rect(colour = "black", fill=NA),
        aspect.ratio = 1, axis.text = element_text(colour = 1, size = 12),
        legend.background = element_rect(linetype = 2, size = 0.5, colour = 1))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r legend ggplot2 legend-properties

13
推荐指数
1
解决办法
1万
查看次数

ggplot change size of some legend items

I have a ggplot with two legends, one for point colour and one for linetype.

我想扩展线型图例键的宽度。

legend.key.width我可以使用来设置整体theme(legend.key.width = unit(5, "cm")),但这会增加两个图例的宽度。有没有办法只设置其中一个图例的宽度?

例子

iris$Group <- as.factor(rep(1:3, 50))

ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  geom_point(aes(colour = Species)) +
  geom_line(aes(linetype = Group))
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
647
查看次数

ggplot中有多个geom_hline

我想在ggplot中使用geom_hline包含两条水平线。我的图表比例从0到20,000,我希望单条线分别为400和17,000。

?geom_hline给出了单行(geom_hline(yintercept = 20))和多行((geom_hline(yintercept = 1:5))的示例。但是后者将在两个数字之间的每个点之间划一条线。

因此geom_hline(yintercept = 400: 17000),在等号处创建带有截距的行400, 401, 402。并且geom_hline(yintercept = 400, 17000)仅对第一个数字生成单个行。我敢肯定,除了这些之外:,我还需要尝试一下,有人对它有什么建议吗?

r ggplot2

4
推荐指数
1
解决办法
4670
查看次数

list.files考虑到R中的文件大小?

我在几个文件夹中有大量文件.我可以得到这些文件的列表;

MY_FILES <- list.files(WORKING_DIRECTORY, pattern = "MY_PATTERN", recursive = TRUE)
Run Code Online (Sandbox Code Playgroud)

大多数(但不是全部)文件都大于50Mb.如何修改list.files呼叫,以便MY_FILES仅包含高于50Mb阈值的呼叫?或者之后我还需要另一个步骤来分组MY_FILES吗?(不知道如何做到这一点,因为只list.files返回一个名称向量,没有关于文件的详细信息)

我需要坚持使用R,因为这只是一系列数据操作中的一步.谢谢.

r file

4
推荐指数
2
解决办法
2809
查看次数

基于字符向量重新排序数据帧

我认为这应该很简单,但我找不到办法做到这一点。

我想根据一个因素重新排序数据帧。到目前为止我能找到的所有答案都提供了逻辑排序,但这是任意的,并且是数字和字母的混合。也许这是一个问题,因为它factor不是vector? 但是对于向量的答案似乎也没有任何作用。

任何建议将不胜感激!

示例数据(注意;此数据仅用于此问题,在我的真实代码中,数据框是其他一些计算的输出,因此我不能在一开始就将名称更改为合理的名称)

DATA<- data.frame(This=c("120", "60", "90", "OG"), That=c(453, 679,12,252))

DATA

  This That
1  120  453
2   60  679
3   90   12
4   OG  252
Run Code Online (Sandbox Code Playgroud)

我想按 60 - 90 - 120 - OG 的顺序对其进行排序,即

  This That
1  60   679
2  90   12
3  120  453
4  OG   252
Run Code Online (Sandbox Code Playgroud)

编辑:这不是一个重复的问题。如上所述,在下面的评论中,排序是任意的。字典排序假设行名称是相互关联的,但这里并非如此。我可以标记行("unicorn", "18.1", "TREES", "234234235")并希望它们按顺序排列("234234235", "unicorn", "TREES", "18.1")

r vector dataframe

2
推荐指数
1
解决办法
4503
查看次数

标签 统计

r ×5

ggplot2 ×3

dataframe ×1

file ×1

legend ×1

legend-properties ×1

vector ×1