出于可重复性的原因,数据集和可重复性的原因,我将共享它here。
下面是我正在做的事情-从第2列,我正在读取当前行并将其与前一行的值进行比较。如果它更大,我会继续比较。如果当前值小于上一行的值,我想用当前值(较小)除以上一行的值(较大)。因此,以下代码:
import numpy as np
import scipy.stats
import matplotlib.pyplot as plt
import seaborn as sns
protocols = {}
types = {"data_v": "data_v.csv"}
for protname, fname in types.items():
col_time,col_window = np.loadtxt(fname,delimiter=',').T
trailing_window = col_window[:-1] # "past" values at a given index
leading_window = col_window[1:] # "current values at a given index
decreasing_inds = np.where(leading_window < trailing_window)[0]
quotient = leading_window[decreasing_inds]/trailing_window[decreasing_inds]
quotient_times = col_time[decreasing_inds]
protocols[protname] = {
"col_time": col_time,
"col_window": col_window,
"quotient_times": quotient_times,
"quotient": quotient,
}
plt.figure(); plt.clf()
diff=quotient_times
plt.plot(diff, quotient, ".", label=protname, color="blue")
plt.ylim(0, 1.0001)
plt.title(protname)
plt.xlabel("quotient_times")
plt.ylabel("quotient")
plt.legend()
plt.show()
sns.distplot(quotient, hist=False, label=protname)
这给出了以下曲线图。
sns.distplot(quotient, hist=False, label=protname)
此代码段生成以下绘图。
从情节上可以看出
quotient_times
小于3时,Data-V的商为0.8,如果quotient_times
为
大于3。我想规范化这些值,使第二个绘图值的y-axis
介于0和1之间。在Python中我们如何做到这一点?
只有当X值在[0,1]时才会发生这种情况,我认为这是库中的问题。
前言
据我所知,seaborn distplot默认情况下会进行kde估计。 如果您想要一个规范化的distplot图,可能是因为您假设图的Ys应该在[0;1]中的范围内。如果是,堆栈溢出问题引发了kde estimators showing values above 1问题。
引用one answer:
引用importanceofbeingernest的第一条注释:
据我所知,它的值应该在[0;1]中。
注意:所有可能的连续适配函数都是on SciPy site and available in the package scipy.stats
或许也可以看看probability mass functions?
如果您真的想将同一个图规范化,那么您应该收集绘制的函数(选项1)或函数定义(选项2)的实际数据点,然后自己将它们规范化并再次绘制。
选择1
选择2
下面,我尝试执行kde并规范化获得的估计。我不是一个统计专家,所以kde的使用在某些方面可能是错误的(它不同于屏幕截图上的seaborn,这是因为seaborn比我做得更好。它只是试图用scipy来模拟kde。结果还不错,我想)
截图:
代码:
输出:
与评论相反,策划:
不改变行为!它只改变核密度估计的源数据。曲线形状将保持不变。
Quoting seaborn's distplot doc:
默认情况下:
它默认使用kde。引用seaborn的kde文档:
引用SCiPy gaussian kde method doc:
注意,我确实相信你的数据是双峰的,正如你自己提到的。它们看起来也是离散的。据我所知,离散分布函数的分析方法可能与连续分布函数的分析方法不同,而且拟合可能会很棘手。
下面是一个有各种规律的例子:
输出:
截图:
相关问题 更多 >
编程相关推荐