Seaborn kdeplot累积积对数刻度

时间:2018-12-13 14:12:31

标签: python-3.x seaborn

首先,我很抱歉是否已经提出了这个问题,我在StackOverflow上找不到解决方案。

我正在使用Seaborn绘制ECDF,但是对于延迟,我的ECDF使用常规轴并没有显示太多信息。

示例: non-log-axis

因此,我更改了脚本以使用ax.set_xscale('log')使x轴对数,但是结果被截断了。

cutoff-log-axis

我在GitHub上读过this issue,但是由于它是几年前的,所以我想知道它是否已解决。

这是我的完整代码:

def plot_cdfs(df, legend, nodes, axes):
    ax1, ax2, ax3, ax4 = axes
    # redirecting subplot according to the number of nodes
    if nodes == '25':
        sns.kdeplot(df[header], cumulative=True, legend=False, ax=ax1)
        ax1.set_ylabel('ECDF', fontsize=16)
        ax1.set_title('25 Nodes')
        ax1.set_xlabel(label)
        ax1.set_xscale('log')
        leg_handles = ax1.get_legend_handles_labels()[0]
        ax1.legend(leg_handles, legend[::4])
    elif nodes == '50':
        sns.kdeplot(df[header], cumulative=True, legend=False, ax=ax2)
        ax2.set_title('50 Nodes')
        ax2.set_xlabel(label)
        ax2.set_xscale('log')
    elif nodes == '100':
        sns.kdeplot(df[header], cumulative=True, legend=False, ax=ax3)
        ax3.set_title('100 Nodes')
        ax3.set_xlabel(label)
        ax3.set_xscale('log')
    else:
        sns.kdeplot(df[header], cumulative=True, legend=False, ax=ax4)
        ax4.set_title('150 Nodes')
        ax4.set_xlabel(label)
        ax4.set_xscale('log')

1 个答案:

答案 0 :(得分:0)

对我有用的一种方法是计算cdf并将结果传递给CMD ["python", "/path/to/manage.py", "runserver", "0.0.0.0:80"]函数:

sns.lineplot()