问题描述
我正在使用matplotlib绘制KDE。问题是我使用的是ax.imshow
,它只包含一个网格和一个范围。这意味着它将使用最大值范围内的最小值线性地将数据与网格隔开。
我需要翻转y轴(可行),但是然后我还需要通过函数而不是简单的因素任意缩放每个y点。例如,如果y值为5
,则需要将其映射到f(5)=13
,并将6
映射到f(6)=22
。关键是,这不是一个简单的标尺。
在绘制了这些y值之后,是否可以修改这些值,还是我不得不事先修改这些值?
解决方法
我找不到修改y值的方法,但是我找到了修改yaxis标签的方法。
通过使用以下函数用所需函数及其反比例缩放矢轴:
ax.set_yscale('function',**{'functions':[forward,inverse]})
然后通过所需功能缩放轴ytick值并将ytick 标签设置为缩放后的ticks,即可有效缩放y值:
ax.set_yticklabels(forward(ax.get_yticks()))