小编Nic*_*aki的帖子

scipy.signal.spectrogram与matplotlib.pyplot.specgram比较

以下代码使用scipy.signal.spectrogram或生成频谱图matplotlib.pyplot.specgram

specgram但是,该功能的色彩对比度相当低。有办法增加吗?

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

# Generate data
fs = 10e3
N = 5e4
amp = 4 * np.sqrt(2)
noise_power = 0.01 * fs / 2
time = np.arange(N) / float(fs)
mod = 800*np.cos(2*np.pi*0.2*time)
carrier = amp * np.sin(2*np.pi*time + mod)
noise = np.random.normal(scale=np.sqrt(noise_power), size=time.shape)
noise *= np.exp(-time/5)
x = carrier + noise
Run Code Online (Sandbox Code Playgroud)

使用matplotlib.pyplot.specgram将产生以下结果:

Pxx, freqs, bins, im = plt.specgram(x, NFFT=1028, Fs=fs)
x1, x2, …
Run Code Online (Sandbox Code Playgroud)

signal-processing matplotlib scipy spectrum spectrogram

6
推荐指数
1
解决办法
3465
查看次数

使用 PDF 输出设备时光栅化绘图

使用 R 的大家好,

将包含数千个数据点的多个绘图放入单个 PDF 文件中时,该文件可能会变得很大并且需要很长时间才能打开。

下面的文章描述了 Matplotlib 中完全相同的问题,以及一个很好的解决方案: Matplotlib:带有光栅化图的多页 PDF 特别好的一点是,它只光栅化点而不光栅化标签。 http://www.astrobetter.com/blog/2014/01/17/slim-down-your-bloated-graphics/包含一个很好的例子。

我现在正在 R 中寻找类似的解决方案。

graphics plot r rasterizing raster-graphics

5
推荐指数
0
解决办法
969
查看次数

球拍:“范围”和“范围内”之间的区别

有两种可能性可以生成要在Racket中的for循环中迭代的数字序列:

(for ([i (range 1 5)])
    (display i))
Run Code Online (Sandbox Code Playgroud)

(for ([i (in-range 1 5)])
    (display i))
Run Code Online (Sandbox Code Playgroud)

range两者都有效并且in-range似乎是等效的,但是https://docs.racket-lang.org/reference/sequences.html说:

“当范围内的应用程序直接出现在 for 子句中时,它可以为数字迭代提供更好的性能。”

与 相比,这也成立吗range

for-loop functional-programming sequence racket

3
推荐指数
1
解决办法
461
查看次数

scipy.signal.spectrogram频率分辨率

scipy.signal.spectrogram计算信号的频谱图,但我看不到增加频谱图频率分辨率的选项.鉴于文档中提供的代码,如何实现?

from scipy import signal
import numpy as np
import matplotlib.pyplot as plt

fs = 10e3
N = 1e5
amp = 2 * np.sqrt(2)
noise_power = 0.01 * fs / 2
time = np.arange(N) / float(fs)
mod = 500*np.cos(2*np.pi*0.25*time)
carrier = amp * np.sin(2*np.pi*3e3*time + mod)
noise = np.random.normal(scale=np.sqrt(noise_power), size=time.shape)
noise *= np.exp(-time/5)
x = carrier + noise

f, t, Sxx = signal.spectrogram(x, fs)
plt.pcolormesh(t, f[0:10], Sxx[0:10,])
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python signal-processing scipy

2
推荐指数
1
解决办法
2138
查看次数

结合两个(布尔)分类因子两个新的

给定两个布尔分类因子,我如何将它们的组合作为第三类?

> my_data <- data.frame(a = c(0, 0, 1, 1, 1),
                        b = c(0, 1, 0, 1, 1))
> my_data
  a b
1 0 0
2 0 1
3 1 0
4 1 1
5 1 1
Run Code Online (Sandbox Code Playgroud)

我想添加一个新类别,结合使用a和b,以便:

> my_data
  a b c
1 0 0 1
2 0 1 2
3 1 0 3
4 1 1 4
5 1 1 4
Run Code Online (Sandbox Code Playgroud)

我不想懒惰,为自己考虑一下:

my_data$c <- as.numeric(as.factor(my_data$a + 1 + (my_data$b + 1) * 2))
Run Code Online (Sandbox Code Playgroud)

这很接近,但我发现它并不特别优雅.因此,可以理解基础R中的任何更好的解决方案.肯定还有喜欢reshape2提供类似功能的软件包.

r

0
推荐指数
1
解决办法
70
查看次数