各位,
我正在尝试使用 ggplot 在 R 中重现 A. Michael Noll 的著名计算机艺术作品“带线条的计算机组合”。
这是原文:https : //collections.vam.ac.uk/item/O1193787/computer-composition-with-lines-photograph-noll-a-michael/

我已经做到了可以创建一个随机的黑色或白色像素的圆圈,但是我很难创建类似于 Noll 使用的图案。
我可以轻松地创建一个由 1 和 0 组成的矩阵,然后切掉圆外的部分。但是模式(我试过uniform、beta、normal……)肯定和白噪声太相似了,而原作的随机性有结构。
library(tidyverse)
# this generates the matrix
genData <- function(N) {
# a N*N matrix of ones and zero according to a rounded beta draw
df <- tibble(x = rep(seq(1,N), N),
y = rep(seq(1,N), each = N),
z = round(rbeta(N*N, 2, 1)))
# centering on zero and cutting away all points outside of a circle
df %>%
mutate(x = …Run Code Online (Sandbox Code Playgroud) 我收集了几项研究的数据.对于每项研究,我都对性别变量的平均值感兴趣,如果这显着不同.对于每项研究,我对男性和女性都有平均值和95%置信区间.
我想做的是类似的事情:

我使用了几种类型的点图(dotplot,dotplot2,Dotplot),但没有完全实现.
使用Dotplotfrom Hmisc我设法有一个系列及其错误栏,但我对如何添加第二个系列感到茫然.
我使用Dotplot并得到了误差条的垂直结束,遵循这里给出的建议.
这是我正在使用的代码的一个工作示例
data<-data.frame(ID=c("Study1","Study2","Study3"),avgm=c(2,3,3.5),avgf=c(2.5,3.3,4))
data$lowerm <- data$avgm*0.9
data$upperm <- data$avgm*1.1
data$lowerf <- data$avgf*0.9
data$upperf <- data$avgf*1.1
# Create the customized panel function
mypanel.Dotplot <- function(x, y, ...) {
panel.Dotplot(x,y,...)
tips <- attr(x, "other")
panel.arrows(x0 = tips[,1], y0 = y,
x1 = tips[,2], y1 = y,
length = 0.05, unit = "native",
angle = 90, code = 3)
}
library(Hmisc)
Dotplot(data$ID ~ Cbind(data$avgm,data$lowerm,data$upperm), col="blue", pch=20, panel = mypanel.Dotplot,
xlab="measure",ylab="study")
Run Code Online (Sandbox Code Playgroud)
这绘制了三列数据,男性的平均值(avgm),以及95%置信区间(lowerm和upperm)的下限和上限.我有其他三个系列,对于相同的研究,对女性受试者做同样的工作(avgf,lowerf,upperf). …
我有一个ggplot,我想根据预定义的条件只突出显示一些特定的x轴标签.
我知道轴文本是由
theme(axis.text = element_text(...))
Run Code Online (Sandbox Code Playgroud)
但这适用于轴的所有标签.我想要的是格式更改只应用于条件= 1的标签.
我有一些二进制数据,我想绘制逻辑回归线和同一图中0和1的相对频率的直方图.
我在这里使用popbio软件包遇到了一个非常好的实现:shizuka lab的页面
这里有一个与图书馆(popbio)一起运行的MWE(礼貌的shizuka实验室)
bodysize=rnorm(20,30,2) # generates 20 values, with mean of 30 & s.d.=2
bodysize=sort(bodysize) # sorts these values in ascending order.
survive=c(0,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,0,1,1,1) # assign 'survival' to these 20 individuals non-randomly... most mortality occurs at smaller body size
dat=as.data.frame(cbind(bodysize,survive))
#and now the plot
library(popbio)
logi.hist.plot(bodysize,survive,boxp=FALSE,type="hist",col="gray")
Run Code Online (Sandbox Code Playgroud)
哪个产生
我有一个简单的(实际上是经济学标准)非线性约束离散最大化问题需要在 R 中解决,但遇到了麻烦。我找到了部分问题的解决方案(非线性最大化;离散最大化),但没有找到所有问题的联合。
\n\n问题就在这里。消费者想要购买三种产品(凤梨、香蕉、饼干),知道价格并且预算为 20\xe2\x82\xac。他喜欢多样化(即,如果可能的话,他希望拥有所有三种产品),并且他的满意度随着消费量的增加而降低(他更喜欢他的第一块饼干,而不是他的第 100 块)。
\n\n他希望最大化的函数是
\n\n\n\n当然,由于每个人都有一个价格,而且他的预算有限,他在以下约束下最大化了这个功能:
\n\n\n\n我想做的是找到满足约束条件的最优购买清单(N 条香蕉,M 条香蕉,K 条饼干)。
\n\n如果问题是线性的,我会简单地使用 linprog::solveLP()。但目标函数是非线性的。\n如果问题具有连续性质,则将有一个简单的解析解。
\n\n这个问题是离散和非线性的,我不知道如何进行。
\n\n这里有一些可以玩的玩具数据。
\n\ndf <- data.frame(rbind(c("ananas",2.17),c("banana",0.75),c("cookie",1.34)))\nnames(df) <- c("product","price")\nRun Code Online (Sandbox Code Playgroud)\n\n我想要一个优化例程,为我提供 (N,M,K) 的最佳购买清单。
\n\n有什么提示吗?
\n我有一个实验数据.我们计划人类决策.我们有一组交替(我们称之为A,B,C,D)来重复选择超过30秒的时间段,我们计时第一个,然后是第二个,然后是第N个选择(主题可以改变他们的想法).数据看起来像这样(以毫秒为单位的时间):
subject time choice
1 2204 A
1 3673 B
1 8435 C
1 12640 B
1 24031 A
Run Code Online (Sandbox Code Playgroud)
我想离散和扩展数据,以便能够在每一秒选择选项; 每次没有选择时(默认)默认为0.理想情况下,它看起来像这样
subject second choice
1 1 0
1 2 0
1 3 A
1 4 B
1 5 B
1 6 B
1 7 B
1 8 B
1 9 C
1 10 C
1 11 C
1 12 C
1 13 B
Run Code Online (Sandbox Code Playgroud)
......依此类推至秒= 30.
基于tidyverse软件包和dplyr管道的解决方案将是最受欢迎的.但我对其他解决方案持开放态度.谢谢!
r ×6
ggplot2 ×3
axis-labels ×1
constraints ×1
dplyr ×1
histogram ×1
lattice ×1
optimization ×1
plot ×1
random ×1
tidyverse ×1
time-series ×1