小编Ger*_*Jan的帖子

欧元签到ggplot:scale包

我注意到,使用scales包,可以在轴上显示美元,例如,使用scales = dollar内部选项scale_y_log10().喜欢的选项scales = euro似乎缺乏.有没有一种简单的方法可以达到同样的效果?

r ggplot2

8
推荐指数
2
解决办法
4943
查看次数

傅立叶变换在scipy和Parseval的身份

在使用Python进行fft时,我遇到了函数规范化和计算系数平方和的问题.

我的代码如下:

import pandas as pd
import numpy as np
import scipy.fftpack 

# sample points
N = 1024

# sample spacing
T = 1.0/512.0

# example function
x = np.linspace(0.0, N*T, N)
y = 1.5 * np.sin(5*2*np.pi*x) + 3 * np.sin(6*2*np.pi*x)

df = pd.DataFrame({'X': x, 'Y': y})

sumy = sum(abs(df['Y'])**2)

df['FFT (Y)'] = scipy.fftpack.fft(df['Y'])/(N/2)
df['FFT (freq)'] = scipy.fftpack.fftfreq(N, T)

sumffty = sum(abs(df['FFT (Y)'])**2)

print sumy, sumffty
Run Code Online (Sandbox Code Playgroud)

根据Parseval的身份,总和应该相等; 然而,它们的关系是256倍(sumffty是较小的一个).我错过了什么?

python math fft

5
推荐指数
1
解决办法
406
查看次数

在geom_line和x轴之间着色区域

我有两个显示供需的图,还有一个图,其中我减去了供应的需求以显示产生的不对称性.我想遮蔽x轴和不对称的负面部分之间的区域,以显示赤字的程度.

我目前使用以下代码:

plot.asymmetry <- ggplot(data=df.overview.month, 
                         aes(x=Date.Time, y=Asymmetry)) +    
      geom_area(data=subset(df.overview.month, Asymmetry < 0),     
                         aes(x=Date.Time, y=Asymmetry)) 
Run Code Online (Sandbox Code Playgroud)

然而 - 正如可以预料的那样 - 这不会遮蔽geom_line和x轴之间的区域,而只会遮挡不对称数据的负值,这完全不同,如结果图所示:

在此输入图像描述

有没有办法克服这个问题?

/编辑:一些示例数据:

time.initial <- as.POSIXct("2010-12-31 23:00:00", tz="GMT")
Date.Time<-vector()
for(i in 1:24) {
Date.Time[i] <- time.initial + i*3600
}

Demand<-vector()
for(i in 0:23) {
Demand[i+1] <- 155 + 20*sin((pi/12)*i - (pi/2)) + 10*sin((pi/4380)*i + (pi/2))
}

Supply<-vector()
for(i in 0:23) {
Supply[i+1] <- 165 + 5*sin((pi/4380)*i - (pi/2)) + rnorm(1, mean=0, sd=0.20*165)
}

df.overview.month <- data.frame(Date.Time, Demand, Supply, Asymmetry=Supply-Demand)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

4
推荐指数
1
解决办法
3845
查看次数

在ggplot2中绘制离散(或不连续)函数

我有以下功能,我想用ggplot绘制:

f(x)= 3/4,x在0和1之间; x为1/4,介于2和3之间; 其他地方0.

我想出了以下R代码:

eq<-function(x) {
    if(x>=0 && x<=1) {
        y<-3/4
    } else if(x>=2 && x<=3) {
        y<-1/4
    } else {
    y<-0
    }
return(y)
}

library(ggplot2)

ggplot(data.frame(x=c(-5,5)), aes(x)) + stat_function(fun=eq)
Run Code Online (Sandbox Code Playgroud)

但是,这会产生一个只有以0为中心的水平线的情节.我做错了什么?

r ggplot2

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

标签 统计

ggplot2 ×3

r ×3

fft ×1

math ×1

python ×1