Matplotlib, как показать логарифмически разнесенные линии сетки при всех тиках на логарифмическом графике?
Я пытаюсь построить график log-log, который показывает логарифмически разнесенные линии сетки во всех тиках, которые вы видите в нижней и левой частях графика. Мне удалось показать некоторые линии сетки, используя matplotlib.pyplot.grid(True)
, но это показывает только линии сетки для меня с мощностью 10 интервалов. Итак, в качестве примера, вот что я сейчас получаю:
![alt text]()
То, что мне действительно очень нравится, - это нечто похожее на сетчатые линии, где сетки не все равномерно распределены:
![alt text]()
Кто-нибудь может предложить, как я буду добиваться этого в Matplotlib?
Ответы
Ответ 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')
работает для меня.