ggplot2可以创建一个非常有吸引力的填充小提琴情节:
ggplot() + geom_violin(data=data.frame(x=1, y=rnorm(10 ^ 5)),
aes(x=x, y=y), fill='gray90', color='black') +
theme_classic()
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想将填充限制在95%的分布中心,保持轮廓完整.有没有人有关于如何做到这一点的建议?
我正在开展一个项目,要求我准确地控制用于绘制(粗略)圆形刺激的像素数量,尽管Bresenham的算法很棒,但它们并没有绘制任意区域的圆圈(据我所知) .我已经尝试过在绘制所需区域时中断Bresenham算法的脚本,但结果肯定是命中注定.有没有人知道使用给定数量的像素绘制"最佳"圆(有点主观,我知道)的方法?非常感谢!
我想在 Python 中计算向量与数组的每一行之间的 Pearson 相关系数(假设为 numpy 和或 scipy)。由于实际数据数组的大小和内存限制,将无法使用标准相关矩阵计算函数。这是我的幼稚实现:
import numpy as np
import scipy.stats as sps
np.random.seed(0)
def correlateOneWithMany(one, many):
"""Return Pearson's correlation coef of 'one' with each row of 'many'."""
pr_arr = np.zeros((many.shape[0], 2), dtype=np.float64)
pr_arr[:] = np.nan
for row_num in np.arange(many.shape[0]):
pr_arr[row_num, :] = sps.pearsonr(one, many[row_num, :])
return pr_arr
obs, varz = 10 ** 3, 500
X = np.random.uniform(size=(obs, varz))
pr = correlateOneWithMany(X[0, :], X)
%timeit correlateOneWithMany(X[0, :], X)
# 10 loops, best of 3: 38.9 ms per …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Scipy/Numpy在Python中实现时间序列的"相位加扰".简而言之,我想:
我有一个表面上似乎有用的脚本(见图),但我怀疑我错过了一些重要的东西.特别是,我返回的阶段扰码时间序列具有复值条目而不是实值条目,我不知道该怎么做.如果任何信号处理人员可以权衡并教育我,我会非常感激.
这是适用于Jupyter Notebook的示例脚本:
%matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft, ifft
def phaseScrambleTS(ts):
"""Returns a TS: original TS power is preserved; TS phase is shuffled."""
fs = fft(ts)
pow_fs = np.abs(fs) ** 2.
phase_fs = np.angle(fs)
phase_fsr = phase_fs.copy()
np.random.shuffle(phase_fsr)
fsrp = np.sqrt(pow_fs) * (np.cos(phase_fsr) + 1j * np.sin(phase_fsr))
tsr = ifft(fsrp)
return tsr
ts = np.array([0.02, -1.04, 2.50, 2.21, 1.37, -0.05, 0.06, -0.22, -0.48, -0.31, …Run Code Online (Sandbox Code Playgroud)