我是R语言的初学者,对于创建法线时ggplot如何使用变量“ x”感到非常困惑。
我的情况是这样。我正在尝试绘制具有特定均值和标准偏差的法线曲线,并且在没有数据的情况下,我看到的最常用的方法如下:
score = 1800
m = 1500
std = 300
ggplot(data.frame(x = c(300, 2700)), aes(x = x)) + stat_function(fun =
dnorm, args = list(mean = m, sd = std)) + scale_x_continuous(name
= "Score", breaks = seq(300, 2700, std))
Run Code Online (Sandbox Code Playgroud)
我想为曲线的特定区域着色,因此使用Internet创建了如下函数:
funcShaded <- function(x) {
y = dnorm(x, mean = m, sd = std)
y[x < score] <- NA
return(y)
}
Run Code Online (Sandbox Code Playgroud)
然后用
p + stat_function(fun = funcShaded, geom="area", fill="#84CA72", alpha=.2)
这可以创建我想要的图形。但是,我对此有2个问题。首先,当我分解代码时
data.frame(x = c(300, 2700))
Run Code Online (Sandbox Code Playgroud)
如您所料,创建了一个两个项目的数据框,因此如何将其用于创建x轴值,并进一步传递给要适当使用的函数(读取它,就像它是值列表一样)?
其次,我现在想稍后再使用此函数,以根据不同的分数(例如score2 = 1630 …
非常新的Python学习者 - 请温柔.我在使用Python中的列表推导概念时遇到了一些问题,所以我试图用for循环来区分列表推导代码.
我遇到了一个问题,其中我有两个列表:一个是值列表,第二个是索引列表.工作是使用索引列表从值列表中提取这些列以创建更短的列表.例如,如果列表是:
my_table = ['1', '2', '3', '4']
['5', '6', '7', '8']
['-2', '-3', '-4', '-5']
col_indices = [0, 2]
Run Code Online (Sandbox Code Playgroud)
我们想要:
Output = ['1', '3']
['5', '7']
['-2', '-4']
Run Code Online (Sandbox Code Playgroud)
所以我之前在Stack Overflow上看过这篇文章,我知道用一个列表理解来做到这一点的方法如下:
answer = []
for row in my_table:
reduced_row = [row[idx] for idx in col_indices]
answer.append(reduced_row)
return answer
Run Code Online (Sandbox Code Playgroud)
说实话,我有点得到这个但不完全.为了更好地理解我尝试编写一些嵌套循环来获得相同的结果,但意识到我没有一个很好的方法用我目前的理解水平来做到这一点.
最初我尝试了以下内容:
col_list = []
for row in my_table:
for idx in col_indices:
new = [row[idx]]
col_list.append(new)
return col_list
Run Code Online (Sandbox Code Playgroud)
但我知道这是错误的,因为它只是将第一列的价值追加到第一列.简而言之,我知道列表理解是从这样的索引中提取列的更有效的方法,但是这个代码是为我提供的,我不确定我是否可以用我当前的理解水平自己编写它.为了更好地解析列表理解的想法,我试图找出一种方法,只能使用循环,但我还没有想出办法.有人可以帮我解决这个问题,希望我能更好地处理这段代码的工作原理吗?