Seaborn BarPlot反转y轴并将x轴保持在图表区域的底部

时间:2017-06-13 22:18:52

标签: python python-3.x matplotlib seaborn

在Excel中,我可以使用如下图形: enter image description here

让它看起来像这样:

enter image description here

通过反转Y轴并设置"水平轴交叉"到" max"。

我想在Seaborn做同样的事情。我可以使用@using (Ajax.BeginForm("Save", "ControllerA", new AjaxOptions() { HttpMethod = "POST" })) 翻转y_axis但是我无法像在Excel中那样将条形保留在图表的底部。

.invert_yaxis()

产生这样的东西: enter image description here

如何将条形从顶部开始移动到底部开始?

我正在使用Python 3.6和seaborn 0.7.1

我的问题似乎与此类似,但这个问题不清楚,没有答案: Pyplot - Invert Y labels without inverting bar chart

2 个答案:

答案 0 :(得分:2)

seaborn.barplotpyplot.bar的包装器,您可以使用pyplot.bar创建带有倒y轴的条形图,条形图从图表的底部到较低的值。 y轴:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame({"x":range(5), "y": [1,1.2,1.4,1.6,1.8]})

plt.bar(df.x, 2*np.ones(len(df))-df.y, bottom= df.y )
plt.gca().invert_yaxis()
plt.ylim(2,0)
plt.show()

enter image description here

答案 1 :(得分:1)

我发现您可以做到:

plt.ylim(reversed(plt.ylim()))

这使您可以继续使用Seaborn。