我使用seaborn kdeplot创建了以下图并自定义了网格线。
sns.set_style('whitegrid')
cdf_accuracy = sns.kdeplot(eval_df['accuracy'], cumulative=True)
cdf_accuracy.yaxis.set_major_locator(ticker.MultipleLocator(0.25))
cdf_accuracy.xaxis.set_major_locator(ticker.MultipleLocator(10))
但是,我想在y轴网格线与绘图相交的点上显示x轴上的网格线。有办法吗?
感谢您的回答
答案 0 :(得分:1)
只要您的特征是单调的(应与累积数据集一起给出),就可以简单地在y值上使用插值:
import numpy as np
y_intrsct = [.25, .5, .75]
x_intrsct = np.interp(y_intrsct, y_data, x_data)
结果
array([67.69792378, 83.24194722, 92.24041857])
用以下代码绘制:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x_data, y_data)
ax.set_yticks(np.linspace(0, 1, 5))
ax.grid(axis='y')
ax.vlines(x_intrsct, *ax.get_ylim())