我正在从熊猫数据框中绘制一个seaborn
distplot
作为我的初始matplotlib画布。然后向画布添加更多信息,我使用vlines
作为垂直标记。
但是,我没有找到一种简单的方法来为vline定义动态ymax
参数,因为它依赖于分布。
sns.distplot(data.values) # distribution chart
plt.vlines(x=[1,2], ymin=0, ymax=?)
是否有一种方法可以根据图表中的最大值传递ymax
? (因此绘图高度和垂直线高度将对齐)。我考虑过类似的东西:
plt.vlines(x=[1,2], ymin=0, ymax=data.values.max())
但是data.values
的最大值实际上在X轴上表示。
答案 0 :(得分:1)
您可以循环输入点(如果输入点不多,例如<= 10,则很有用)
for i in [1,2]:
ax.axvline(i)
或者您可以为vlines
提供混合变换,
ax.vlines(x=[1,2], ymin=0, ymax=1, transform=ax.get_yaxis_transform())
答案 1 :(得分:0)
我找到了一种检索画布坐标的方法:
dist = sns.distplot(data.values)
ymin,ymax = dist.get_ylim()
那很简单:
plt.vlines(x=[1,2], ymin=ymin, ymax=ymax)