python - 像在 R 中一样在 Python 中绘制 QQ 图
问题描述
当我尝试在变量 i 中绘制以下数据存储时,我遇到了麻烦。
Dates
2015-08-21 0.032369
2015-08-24 0.040211
2015-09-01 0.030023
Python
import statsmodels.api as sm
from matplotlib import pyplot as plt
fig = sm.qqplot(i, line='45')
plt.show()
R
r <- 0.01
spcs <- as.numeric(diff(time(i)))
qq_plot(spcs, FUN = function(p) qexp(p, rate = r)) # r = exceedance probability
在 R 中
我得到以下情节:
我在 colab 中分享笔记本的链接可能有助于理解问题
[Colab 链接][2]
解决方案
您应该改为绘制pandas
系列的索引(获取 的差异DatetimeIndex
,将其转换为timedelta
并提取天数),如下所示,以获得正确的 qq-plot(具有适当的分布):
import statsmodels.api as sm
import scipy.stats as stats
from matplotlib import pyplot as plt
pd.to_timedelta(np.diff(i.index), unit='ns').days.values
# array([3, 8])
r = 0.01
fig = sm.qqplot(pd.to_timedelta(np.diff(i.index), unit='ns').days.values, \
stats.expon, loc=0, scale=r)
plt.show()
推荐阅读
- networking - IPv4 网络 ID 和主机 ID
- android - 包 IInAppBillingService 不存在
- html - 当我使用 h-100 类时,内容在容器外(在移动设备上)中断
- java - 如何在 Fedora 28 中为 Docker 安装 Tomcat 容器?
- sql - 为什么“变异表错误”是运行时?
- python - 使用 celery 时,SQLAlchmey 经常遇到数据库连接问题
- ruby - 如何使用 graphql-ruby 测试 GraphQL 模式?
- c# - 传递类实例后变量不更新
- python - 在 python-pptx 中更改系列填充颜色
- android - 检测到不一致。无效的视图持有者适配器 positionViewHolder... android.support.v7.widget.RecyclerView