我有一个3列(name,, )的数据框y,sex其中name是字符,y是一个数值,sex是一个因子.
sex<-c("M","M","F","M","F","M","M","M","F")
x<-c("MARK","TOM","SUSAN","LARRY","EMMA","LEONARD","TIM","MATT","VIOLET")
name<-as.character(x)
y<-rnorm(9,8,1)
score<-data.frame(x,y,sex)
score
name y sex
1 MARK 6.767086 M
2 TOM 7.613928 M
3 SUSAN 7.447405 F
4 LARRY 8.040069 M
5 EMMA 8.306875 F
6 LEONARD 8.697268 M
7 TIM 10.385221 M
8 MATT 7.497702 M
9 VIOLET 10.177969 F
Run Code Online (Sandbox Code Playgroud)
如果我想订购,y我会使用:
score[order(score$y),]
x y sex
1 MARK 6.767086 M
3 SUSAN 7.447405 F
8 MATT 7.497702 M
2 TOM …Run Code Online (Sandbox Code Playgroud) 我有一个程序,以这种格式给我数据
toy
file_path Condition Trial.Num A B C ID A B C ID A B C ID
1 root/some.extension Baseline 1 2 3 5 car 2 1 7 bike 4 9 0 plane
2 root/thing.extension Baseline 2 3 6 45 car 5 4 4 bike 9 5 4 plane
3 root/else.extension Baseline 3 4 4 6 car 7 5 4 bike 68 7 56 plane
4 root/uniquely.extension Treatment 1 5 3 7 car 1 7 37 bike 9 8 7 …Run Code Online (Sandbox Code Playgroud) 如何在matlab中我可以用行交互式附加矩阵?
例如,假设我有空矩阵:
m = [];
Run Code Online (Sandbox Code Playgroud)
当我运行for循环时,我得到了需要插入矩阵的行.
例如:
for i=1:5
row = v - x; % for example getting 1 2 3
% m.append(row)?
end
Run Code Online (Sandbox Code Playgroud)
所以插入后应该看起来像:
m = [
1 2 3
3 2 1
1 2 3
4 3 2
1 1 1
]
Run Code Online (Sandbox Code Playgroud)
在大多数编程语言中,您只需将行附加到数组/矩阵中即可.但我觉得很难在matlab中做到这一点.
我有一个MATLAB GUI:
1)由activex控制的VLC窗口.
2)一组单选按钮,用于"注释"特定帧上的视频.
我有工作代码,但我错过了为注释调用的函数的输出.此函数Annotate应将带注释的值替换为先前创建的表final_data.我可以将替换值显示到控制台,我希望guidata更新handles,因此我的main函数的输出应包含一个.final_data具有更新值的字段.但是,调用.final_data输出对象将返回空占位符值.
function Annotate(varargin)
hFigure = findobj('tag', 'VideoPlay');
handles = guidata(hFigure);
% change value of the orther button to 0
set(handles.hNotAnnotateButton, 'Value', 0);
mypos = handles.vlc.input.Position; % >> proxy to calculate frame
behavior = handles.Behavior; % >>> Tag to be annotated
% Calculate frame
myframe = ceil(handles.vlc.input.Time/1000 * handles.frameRate) - 1;
handles.final_data.behavior(myframe) = behavior;
display(handles.final_data(myframe, :)) % displays properly
guidata(handles.hFigure, handles) % not …Run Code Online (Sandbox Code Playgroud) 我正在使用带有revealjs格式的四开演示文稿。我可以像这样将图像设置为水平居中
{fig-align="center" height="200"}
Run Code Online (Sandbox Code Playgroud)
我试图让图形垂直居中对齐,但我找不到方法。如果我尝试通过将类更改为 来调整幻灯片的 css .center,它确实会将内容垂直居中,但它会居中所有内容而不仅仅是图像。
如何使图像垂直居中?
我尝试过的事情:
style="padding-top: 150px;有助于使其居中,但很引人注目vertical-align: middle;似乎不起作用我是粉丝facet_wrap.虽然快速分割大数据框并绘制几个图并在R中进行探索,但它并不总是用于纸张或功率点的最佳工具.我发现自己在缩放比例,宽度和字体大小方面浪费了大量时间,并最终修改了情节.
有时我只是将我的数据框子集成到许多数据框中,并为每个数据框单独绘制.之后multiplot用手或手工加入.
我想知道是否有一种方法可以使ggplot调用几乎以相同的方式(一个大的df与一个用于分面的因子列)或一种方法来使ggplot从具有类似列表的数据帧的东西中读取因子.理想的输出应该是多个单个图,稍后我会在inkscape上编辑(并使用free_y刻度来减少痛苦)
要清楚,
df<-mtcars
ggplot(df,aes(df$mpg,df$disp,color=factor(cyl)))+
geom_point(aes(df$mpg,df$disp))+
facet_wrap( ~cyl)
Run Code Online (Sandbox Code Playgroud)
制作一个情节.在这种情况下,我想要的输出是三个图,每个面一个.
我想将密度曲线叠加到我构造的频率直方图上.对于我使用的频率直方图,aes(y=..counts../40)因为40是我的总样本数.aes(y=..density..*0.1)因为我的binwidth是0.1,我曾经强迫密度介于0和1之间.但是,密度曲线不适合我的数据,它排除了等于1.0的值(注意直方图显示bin =(1.0,1.1)的累积值,但密度曲线结束于1.0)
这是我的数据
data<-structure(list(variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, …Run Code Online (Sandbox Code Playgroud) 我想用我的ggplot绘制矩形"阴影".ggplot代码工作并提供如下所示的图像.我在这里查找信息并构建了x和y值的数据框.
mydf<-data.frame(tiempo=df5$tiempo,vel=df5$TR2x45.17)[1:14,]
structure(list(tiempo = c(618.2, 618.4, 618.6, 618.8, 619, 619.2,
619.4, 619.6, 619.8, 620, 620.2, 620.4, 620.6, 620.8), vel = c(0,
0, -4, -9, 5, 9, 1, 4, 0, 0, -1, -4, 0, 1)), .Names = c("tiempo",
"vel"), row.names = c(NA, 14L), class = "data.frame")
rects <- data.frame(xstart = seq(618,619.5,.5), xend = seq(618.5,620,.5), col = letters[1:4])
ggplot(data=mydf,
aes(x=tiempo,y=vel))+theme_minimal()+
geom_point(size=4)+
labs(title=c("Velocidad ejemplo pasaje figura"))+
geom_smooth(method="loess", span=.3, se=FALSE, colour="red", size=1,alpha=0.5) +
geom_rect(data = rects, aes(xmin = xstart, xmax = xend, …Run Code Online (Sandbox Code Playgroud) 我有一个data.frame由字母数字字符序列组成的id(例如id = c(A001, A002, B013)).我正在寻找一个简单的函数stringr或者stirngi很容易用这个字符串做数学运算(id + 1应该返回c(A002, A003, B014)).
我做了一个自定义函数来完成这个技巧,但是我觉得必须有一个更好/更有效/内部包的方式来实现这一点.
str_add_n <- function(df, string, n, width=3){
string <- enquo(string)
## split the string using pattern
df <- df %>%
separate(!!string,
into = c("text", "num"),
sep = "(?<=[A-Za-z])(?=[0-9])",
remove=FALSE
) %>%
mutate(num = as.numeric(num),
num = num + n,
num = stringr::str_pad(as.character(num),
width = width,
side = "left",
pad = 0
)
) %>%
unite(next_string, text:num, sep = "")
return(df)
} …Run Code Online (Sandbox Code Playgroud) 我有一个程序可以 24/7 全天候运行,从相机获取帧,通过本地网络处理和发送 .jpg 图像。通常,我不希望将任何视频保存到文件中,但是我可能希望在某些情况下安排 x 分钟的保存时间(未触发,已安排)。
我通过调用 VideoWriter 作为 VideoCamera 的线程来处理视频录制。我发现这对于使用正确的 fps 处理写作更准确。当我想从头开始录制以及只想流式传输时,此过程非常有效。我是这样启动相机的。
import ...
# from custom file import `VideoCamera` which has access to `VideoWriter`
from camera import VideoCamera
video_camera = VideoCamera(
flip = False,
usePiCamera = False,
resolution = (640, 480),
record = False,
record_duration = None,
record_timestamp = True
)
Run Code Online (Sandbox Code Playgroud)
相机不能被初始化两次(不能访问同一个相机两次)。因此,我正在考虑使用新参数(例如record = True, record_duration = "00:10:00")安排停止和重新启动。
我从控制台 ( python main.py)调用脚本,它具有:
if __name__ == '__main__':
t = threading.Thread(target=processing_fun, args=())
t.daemon = True
t.start()
print("To …Run Code Online (Sandbox Code Playgroud)