После некоторые поиски и попытки, я делюсь решением, которое я нашел, поэтому другие могут использовать его в качестве ссылки в будущем. Это не совсем то, что я искал, так как я хотел бы горизонтальные линии сетки только для правой оси, однако он обеспечил гораздо лучшую визуализацию, чем исходный сюжет.
От this, я узнал, как выровнять левую и правую оси тиков (эта проблема также возникает при построении графиков линий, но эффект не такой же тревожный, как на графике).
import matplotlib.pyplot as plt
import seaborn as sb
import numpy as np
x = np.arange(1,11)
y1 = x[::-1]
y2 = 2 ** x
fig = plt.figure(figsize = (8,6))
ax1 = fig.add_subplot(111)
plt.bar(x, y1, 1, color = 'blue')
ax2 = ax1.twinx()
ax2.plot(x+0.5, y2, color = 'red')
ax2.set_yticks(np.linspace(ax2.get_yticks()[0],ax2.get_yticks()[-1],len(ax1.get_yticks())))
линий сетки еще над столбиками. Однако, поскольку метки отмечены, мы теперь можем удалить сетку второго графика линии, добавив явную команду: ax2.grid(False)
в конце предыдущего кода.
ВАЖНО: Обратите внимание, что в этом примере метка в левой и правой оси довольно хороша. Однако в реальной ситуации такой подход может привести к уродливым ярлыкам (поплавкам или грубым целым числам) на правой оси. Используя этот подход, мы по-прежнему не в состоянии установить положение правильных меток, поэтому это не точный ответ на вопрос.
Из [this] (http://stackoverflow.com/questions/1726391/matplotlib-draw-grid-lines-behind-other-graph-elements) кажется, что вы хотите использовать 'set_axisbelow (True)' с помощью документация [здесь] (http://matplotlib.org/api/axes_api.html). Кажется, я делаю ужасную работу по ее реализации, поэтому, возможно, вы доберетесь до меня. – roganjosh
Я действительно этого не понимаю. Насколько я могу судить, я правильно слежу за всей документацией и примерами, я не получаю никаких ошибок, но это просто полностью игнорируется. Я не уверен, что смогу решить эту проблему. – roganjosh