Подтвердить что ты не робот

Matplotlib, как показать логарифмически разнесенные линии сетки при всех тиках на логарифмическом графике?

Я пытаюсь построить график log-log, который показывает логарифмически разнесенные линии сетки во всех тиках, которые вы видите в нижней и левой частях графика. Мне удалось показать некоторые линии сетки, используя matplotlib.pyplot.grid(True), но это показывает только линии сетки для меня с мощностью 10 интервалов. Итак, в качестве примера, вот что я сейчас получаю:

alt text

То, что мне действительно очень нравится, - это нечто похожее на сетчатые линии, где сетки не все равномерно распределены:

alt text

Кто-нибудь может предложить, как я буду добиваться этого в Matplotlib?

4b9b3361

Ответ 1

В принципе, вам просто нужно ввести параметр which="both" в команде сетки, чтобы он стал:

matplotlib.pyplot.grid(True, which="both")

Другие варианты, для которых есть "minor" и "major", которые являются основными тиками (которые показаны на вашем графике), и незначительные тики, которые вам не хватает. Если вы хотите сплошные линии, вы можете использовать ls="-" как параметр для grid().

Вот пример для пинков:

import numpy as np
from matplotlib import pyplot as plt

x = np.arange(0,100,.5)
y = 2*x**3

plt.loglog(x,y)
plt.grid(True,which="both",ls="-")
plt.show()

который генерирует:

a log-log graph

Ответ 2

Как говорит @Bryce, в моей машине правильный kwarg majorminor. Я думаю, что сплошные линии с более светлым цветом могут быть лучше, чем пунктирные линии.

plt.grid(True,which="majorminor",ls="-", color='0.65')

работает для меня.