我有一些问题让我的ggplot alpha对我的情节来说足够黑暗.
示例代码:
ggplot(mtcars, aes(x=mpg, color=factor(gear), alpha=factor(carb))) + stat_ecdf()
Run Code Online (Sandbox Code Playgroud)

如您所见,无论何时carb == 1,都很难看到情节元素.在我的真实世界数据集中,颜色因子有四个级别,而alpha因子有两个级别.我希望alpha的颜色略浅一些,但比那个例子中的颜色更明显.
如何在Python中向量化多元标准CDF(累积密度函数)?
在查看这篇文章时,我发现有一个“移植”到Python的多变量CDF的Fortran实现。这意味着我可以轻松评估一种特定情况下的CDF。
但是,我很难有效地将此功能应用于多个条目。
具体来说,我需要“向量化”的函数有4个参数:
但是,我试图多次多次对1000多个元素进行有效评估。
这是一些代码来说明我的问题。在下面的示例中,我仅使用随机数据来说明我的观点。
import time
import numpy as np
from scipy.stats.mvn import mvnun # library that calculates MVN CDF
np.random.seed(666)
iters = 1000 # number of times the whole dataset will be evaluated
obs = 1500 # number of elements in the dataset
dim = 2 # dimension of multivariate normal distribution
lower = np.random.rand(obs,dim)
upper = lower + np.random.rand(obs,dim)
means = np.random.rand(obs,dim)
# Creates a symmetric matrix - used for …Run Code Online (Sandbox Code Playgroud) 在R中,ecdf我可以绘制经验累积分布函数
plot(ecdf(mydata))
Run Code Online (Sandbox Code Playgroud)
并且hist我可以绘制我的数据的直方图
hist(mydata)
Run Code Online (Sandbox Code Playgroud)
如何在同一个图中绘制直方图和ecdf?
我尝试做出类似的东西
例如,我有一个带CDF的离散函数,如下所示:
cdf <- c(0.00, 0.35, 0.71, 0.92, 1.00, 1.00, 1.00, 1.00)
Run Code Online (Sandbox Code Playgroud)
我可以使用以下行创建一种分位数函数...
result <- which(cdf == min(cdf[cdf > x]))
Run Code Online (Sandbox Code Playgroud)
...其中x是累积概率.例如,qfunction(0.9)= 4,qfunction(0.99)= 5.
这个解决方案似乎很好(虽然不优雅),直到我想处理矢量.因此,如果x = c(0.9,0.99),我的函数就会崩溃.这似乎是人们在R中做了很多事情,但我还没有找到解决方案.R不是我的主要语言.
任何帮助,将不胜感激.
我想用加权CDF绘图ggplot.一些旧的非SO讨论(例如2012年的这一讨论)表明这是不可能的,但我认为我会重新加入.
例如,请考虑以下数据:
df <- data.frame(x=sort(runif(100)), w=1:100)
Run Code Online (Sandbox Code Playgroud)
我可以展示一个未加权的CDF
ggplot(df, aes(x)) + stat_ecdf()
Run Code Online (Sandbox Code Playgroud)
我怎么称重w呢?对于这个例子,我希望x^2看起来有一个功能,因为较大的数字具有较高的权重.
我正在尝试ecdf()使用以下代码使用函数绘制CDF图:
> x<-ecdf(data$V6)
> summary(x)
Empirical CDF: 2402 unique values with summary
Min. 1st Qu. Median Mean 3rd Qu. Max.
3392 71870 120100 386100 219000 158600000
plot(x, log='x')
Error in plot.window(...) : Logarithmic axis must have positive limits
Run Code Online (Sandbox Code Playgroud)
我的数据集以指数方式增长,因此我希望在x轴上具有对数比例.当我不使用log="x"它工作,但情节不好.我需要x轴是对数的.有任何想法吗?
我必须模拟一个系统的失败时间,为此我必须使用具有"降低危险率"和"0.7-0.8"形状的Weibull分布.我必须为使用从0到1的随机数的函数生成一个包含100个结果的文件.
所以我一直在搜索,我找到了这个R函数:
pweibull(q, shape, scale = 1, lower.tail = T, log.p = F)
Run Code Online (Sandbox Code Playgroud)
还有一些其他的(rweibull,qweibull ......)但我认为这是我必须使用的,因为是累积分布,正如练习声明所说.问题是我是R的新手,我不知道我必须传递给这个函数的参数.
我猜测形状应该是0.7-0.8,并且比例1.对于q参数,我应该创建一个100个数字的随机向量,0到1的值?如果是这样,任何提示如何做到这一点?还有关于如何将结果数据导出到文件的任何提示?
我找不到matlab中的函数,它实现了正态分布的均值和标准差,并绘制了PDF和CDF.
我担心我实现的两个函数都丢失了,因为我得到的最大值pdfNormal大于1.
function plotNormPDF(u,s,color)
mu = u;
sigma = s;
x = (mu - 5 * sigma) : (sigma / 100) : (mu + 5 * sigma);
pdfNormal = normpdf(x, mu, sigma);
string = 'the maximal pdfNormal is';
string = sprintf('%s :%d', string,max(pdfNormal));
disp(string)
plot(x, pdfNormal/max(pdfNormal),color);
end
Run Code Online (Sandbox Code Playgroud)
而对于CDF规范
function plotNormCDF(u,s,color)
mu = u;
sigma = s;
x = (mu - 5*sigma) : (sigma / 100) : (mu + 5*sigma);
pdfNormal = normpdf(x, mu, sigma); …Run Code Online (Sandbox Code Playgroud) 考虑一个 5 变量累积分布函数(cdf),我将其称为 F。
我想在 Matlab 中从这个 cdf 中随机采样 5x1 向量。F不是Matlab中已经实现的cdf(如normal、t-student等)。具体来说,它被定义为
我已经在这个论坛和其他论坛上阅读了几个关于如何从 Matlab 中自定义概率分布函数进行采样的问题/答案。然而,
1)大多数都是针对单变量cdf,例如这里。这个想法是应用逆变换采样。我的问题有点复杂,因为我需要“反转”5 变量函数。
2)另一种选择可能是按照此处的建议使用slicesample,但我不知道在我的情况下如何编写概率密度函数的解析表达式。
3)这是另一个想法,但特定于二元情况。
您能帮助我了解如何继续吗?
我在绘制累积分布函数时遇到了麻烦.
到目前为止我发现了这个:
scipy.stats.beta.cdf(0.2,6,7)
Run Code Online (Sandbox Code Playgroud)
但这只能给我一点意见.
这将是我用来绘制的内容:
pylab.plot()
pylab.show()
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样: 文件:二项分布cdf.svg
与p = .2界限停止一次y = 1或接近1.
cdf ×10
r ×6
distribution ×2
ggplot2 ×2
matlab ×2
probability ×2
python ×2
alpha ×1
histogram ×1
plot ×1
random ×1
sampling ×1
statistics ×1
weibull ×1