小编Wil*_*unn的帖子

使用ggplot创建绘图时,hjust和vjust会做什么?

每次我使用ggplot创建一个情节时,我会花一点时间尝试不同的值来调整hjust和vjust

+ opts(axis.text.x = theme_text(hjust = 0.5))
Run Code Online (Sandbox Code Playgroud)

使轴标签在轴标签几乎接触轴的位置排成一行,并与轴齐平(可以说是轴对齐).但是,我真的不明白发生了什么.通常情况下,hjust = 0.5会产生如此显着不同的结果hjust = 0.6,例如,我只是通过玩弄不同的值来解决这个问题.

谁能指点我对hjust和vjust选项如何工作的全面解释?

plot r ggplot2

143
推荐指数
2
解决办法
11万
查看次数

如何仅绘制包含日期的时间戳的时间部分?

所以我有一组这样的时间戳:

datetime<-c("2011-09-28 03:33:00", "2011-08-24 13:41:00", "2011-09-19 16:14:00", "2011-08-18 11:01:00", "2011-09-17 06:35:00", "2011-08-15 12:48:00")
Run Code Online (Sandbox Code Playgroud)

我想制作一个只有时间的直方图.我所做的是在空格处拆分列以仅获取时间,然后转换回POSIXct对象以便qplot绘制它:

library(ggplot2, stringr)    
qplot(as.POSIXct(strptime((str_split_fixed(as.character(time), " ", 2)[,2]), "%H:%M:%S")))
Run Code Online (Sandbox Code Playgroud)

但是,输出as.POSIXct(strptime((str_split_fixed(as.character(datetime), " ", 2)[,2]), "%H:%M:%S"))

"2011-10-04 03:33:00 PDT" "2011-10-04 13:41:00 PDT" "2011-10-04 16:14:00 PDT" "2011-10-04 11:01:00 PDT" "2011-10-04 06:35:00 PDT" "2011-10-04 12:48:00 PDT"
Run Code Online (Sandbox Code Playgroud)

qplot描绘了我想要的东西,但这对我来说似乎是一个令人费解的黑客.当然有更好的方法来做到这一点?我可以转换为纪元时间和情节,但我试图避免不得不这样做作为额外的一步.

更大的问题是,"我如何控制strptime的输出?"

timestamp r strptime ggplot2

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

R:当我尝试格式化日期字符串时,为什么strptime总是返回NA?

这是我的一些数据,从文件名AttReport_all读入:

Registration.Date                 Join.Time                Leave.Time
1 Jul 05, 2011 09:30 PM EDT Jul 07, 2011 01:05 PM EDT Jul 07, 2011 01:53 PM EDT
2 Jul 05, 2011 10:20 AM EDT Jul 07, 2011 01:04 PM EDT Jul 07, 2011 01:53 PM EDT
3 Jul 04, 2011 02:41 PM EDT Jul 07, 2011 12:49 PM EDT Jul 07, 2011 01:53 PM EDT
4 Jul 04, 2011 11:38 PM EDT Jul 07, 2011 12:49 PM EDT Jul 07, 2011 01:54 PM EDT …
Run Code Online (Sandbox Code Playgroud)

r date

7
推荐指数
1
解决办法
9356
查看次数

如何为多个数据帧将列名设置为小写?

我有一组具有相同列标题的数据帧,除了一些列名称大写,一些列小写.我想将所有列名称转换为小写,以便我可以创建一个大的数据帧.

我似乎无法colnames()在任何循环中工作或申请我写.附:

#create dfs
df1<-data.frame("A" = 1:10, "B" = 2:11)
df2<-data.frame("a" = 3:12, "b" = 4:13)
df3<-data.frame("a" = 5:14, "b" = 6:15)
#I have many more dfs in my actual data

#make list of dfs, define lowercasing function, apply across df list
dfs<-ls(pattern = "df")
lowercols<-function(df){colnames(get(df))<-tolower(colnames(get(df)))}
lapply(dfs, lowercols)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in colnames(get(df)) <- tolower(colnames(get(df))) : 
  could not find function "get<-"
Run Code Online (Sandbox Code Playgroud)

如何将所有数据框更改为具有小写列名?

r apply

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

如何使用ggplot填充geom_area()图?

我有一个geom_area图,看起来像这样: 区域情节

我想为x轴绿色上方的所有颜色和x轴下方的所有颜色设置红色.我的数据中有一个类别列,其中包含所有正值的字符串"正"和所有负值的"负",因此我尝试使用fill = category并使用scale_fill_manual将正数设置为绿色,将负数设置为红色,但是这给了我这个: 彩色区域图

绿色上方的x看起来正确,但轴下方的红色不对.我已经检查了我的数据,并且没有负数据点,它在10月20日之后变成红色,并且使用geom_point代替我得到正确的颜色.

这是我的数据样本:

created                 score   category
2011-10-19 21:26:19     2   positive
2011-10-19 22:50:33    -2   negative
2011-10-20 15:12:38    -2   negative
2011-10-20 17:19:24    -2   negative
2011-10-20 22:12:44     2   positive
2011-10-20 22:16:57     4   positive
2011-10-21 08:22:53     2   positive
Run Code Online (Sandbox Code Playgroud)

这是我用来制作情节的代码:

ggplot(data = df, aes(x = created, y = score, colour = category)) + geom_point(aes(fill = category)) + scale_fill_manual(values = c("positive" = "green", "negative" = "red"))

我的问题可能与之前的问题有关.

r ggplot2

6
推荐指数
1
解决办法
7943
查看次数

如何使用列表指定排序顺序?

请原谅我的无知,但我在排序数据框时遇到了麻烦.我想指定一个有序列表,比如c("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")排序时,数据帧按列表的顺序排序.

在这个例子中,我想从头开始

    Day Present Count
    Fri No  164
    Fri Yes 131
    Mon No  142
    Mon Yes 174
    Sat No  39
    Sat Yes 26
    Sun No  44
    Sun Yes 39
    Thu No  191
    Thu Yes 192
    Tue No  184
    Tue Yes 214
    Wed No  343
    Wed Yes 255
Run Code Online (Sandbox Code Playgroud)

结束

    Day Present Count
    Mon No  142
    Mon Yes 174
    Tue No  184
    Tue Yes 214
    Wed No  343
    Wed Yes 255
    Thu No  191 …
Run Code Online (Sandbox Code Playgroud)

sorting r

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

如何仅从特定Gmail邮件标签下载未读附件?

我有一个Python脚本改编自下载使用Python发送到Gmail的MMS电子邮件

import email, getpass, imaplib, os

detach_dir = '.' # directory where to save attachments (default: current)
user = raw_input("Enter your GMail username:")
pwd = getpass.getpass("Enter your password: ")

# connecting to the gmail imap server
m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user,pwd)
m.select("[Gmail]/All Mail") # here you a can choose a mail box like INBOX instead
# use m.list() to get all the mailboxes

resp, items = m.search(None, 'FROM', '"Impact Stats Script"') # you could filter using the IMAP rules here …
Run Code Online (Sandbox Code Playgroud)

python gmail attachment imaplib

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

如何按其中一行的子集平均值对数据帧进行排序?

我对R很新,但我取得了很好的进展.我已经能够将ggplot2弯曲到我的意愿,除了一件事:在我的箱线图中沿着x轴绘制分类标签的顺序.我认为这只是我对如何处理公式中数据帧范围的了解,但这里是假数据,作为一个名为df的数据帧:

Index    Label    Value
index1   A        1
index2   A        2
index3   A        3
index4   B        12
index5   B        11
index6   B        10
index7   C        8
index8   C        7
index9   C        9
...
index76  Z        15
index77  Z        17
index78  Z        16
Run Code Online (Sandbox Code Playgroud)

我的情节代码看起来像是qplot(df$Label, df$Value, data=df) + scale_x_discrete("Label") + opts(axis.text.x = theme_text(angle = 90, hjust = 0, size=7)) + geom_boxplot()给我我想要的东西,这是一个箱形图,显示标签A的一个盒子和胡须,一个用于B,一个用于C.但是,轴按照标签的顺序排列(盒子图1,2,3最接近原点,10,11,12位于中间,7,8,9位于图的右侧).我想要的是箱线图数据从标签平均值最高的子集开始,然后按递减顺序进行.我可以每个标签内的平均mean(df$Label[1:3])mean(df$Label[4:6])等,但我无法弄清楚如何让图形显示如下这样的标签地块不可走,他们出现的顺序factor(df$Label)(即A,B,C沿x盒子在2,18,8),但按照标签内最高的平均值到最低值(即沿着x的B,C,An,然后是11,8,2).

我想我会创建一个由每个标签内平均值组成的向量,并以某种方式将其传递给ggplot来指定轴顺序,但我无法弄清楚如何创建矢量来开始.

我需要知道的是:

从最高到最低的顺序,获得由每个标签的平均值组成的向量的最佳方法是什么?

如何将该矢量传递给ggplot它,以便它按这些值对x轴进行排序,同时仍然使用标记xfactor(df$Label)

我也对其他显示数据的方法持开放态度,但我认为我非常接近我想要的东西,并且给定标签内的值的均值和传播很重要.

sorting r ggplot2 boxplot

3
推荐指数
1
解决办法
1774
查看次数

如何在三个相似的时间/值图表中使用公共轴

我有三个带时间戳的测量系列,采用相同的间隔,但具有不同的实际时间戳.我想在组合图中显示这三个轨迹,但由于x轴(时间戳)在每种情况下都不同,我遇到了一些麻烦.有没有办法在不选择x轴的情况下使用和插值其他两个测量序列的y值?我对R很陌生,但我觉得我有一些明显的东西可以忽略.

例如:

系列1

Time    Value
1.023   5.786
2.564   10.675
3.678   14.678
5.023   17.456
Run Code Online (Sandbox Code Playgroud)

系列2

0.787   1.765
1.567   3.456
3.011   5.879
4.598   7.768
Run Code Online (Sandbox Code Playgroud)

系列3

1.208   3.780
2.478   6.890
3.823   9.091
5.125   12.769
Run Code Online (Sandbox Code Playgroud)

plot axis r measurement time-series

3
推荐指数
1
解决办法
210
查看次数