Как сделать сетку в matplotlib

Добавил пользователь Дмитрий К.
Обновлено: 10.09.2024

У меня возникают трудности с построением линий сетки под моими графиками без использования основной оси X и Y:

Пример взят из собственного matplotlib, и я немного подправил, чтобы показать, как заставить проблему появиться. Я не могу публиковать изображения, но если вы запустите код, вы увидите, что столбцы нанесены над горизонтальными линиями сетки, а также над осями x и y. Я не хочу, чтобы оси x и y были скрыты графиком, особенно когда тики также блокируются.

Я пробовал matplotlib 1.2.1, 1.3.1rc2 и мастер (commit 06d014469fc5c79504a1b40e7d45bc33acc00773)

Чтобы получить оси шипов на верхней части стержней, вы можете сделать следующее:

РЕДАКТИРОВАТЬ

Кажется, что я не могу сделать линии тика, чтобы идти сверху баров. я пробовал

и какой-то другой путь без результатов. Кажется, что при рисовании баров они ставятся сверху, а zorder игнорируется.

Обходной путь может быть нарисовать линии галочки наружу

или как внутри, так и снаружи, используя direction='inout'

EDIT2

Я сделал некоторый тест после комментариев @tcaswell.

Если zorder в ax.bar Для функции установлено значение 2,01 (значение по умолчанию для оси), столбцы отображаются поверх оси, линий тиканья и сетки. Тогда можно установить более высокие значения для позвоночника (как указано выше), но любая попытка изменить zorder из tick lines просто игнорируется (хотя значения обновляются на соответствующих исполнителей).

Я пытался использовать zorder=1 для bar а также zorder=0 для сетки и сетки рисуется на верхней части баров. Так что Зордер игнорируется.

резюмировать

Мне кажется, что тиклайн и сетка zorder просто игнорируются и сохраняются к значениям по умолчанию. Для меня это ошибка, как-то связанная с bar или несколько patches ,

Кстати, я помню, как успешно изменил Zorder в Ticklines при использовании imshow

Здравствуйте. Проблема в следующем. Мне нужно создать график функции cos(x), нарисовать сетку графика с шагом 0.5, а деления на осях сделать с шагом 0.2.

Нарисовать график и задать деления на осях у меня получилось, но сетку не получается отобразить корректно. Почему-то вместо сетки с шагом 0.5 я получаю сетку с шагом в 1. Как отобразить нужную мне сетку?

Заранее спасибо за ответы.

Автоматическое обновление данных из БД и отображение на графике
Всем привет. Столкнулся со сложностью, не скажите как сделать, что бы данные из БД обновлялись.


Работа с отметками сетки на графике
Здравствуйте! Хочу убрать примерно половину маркеров по оси Y на графиках, а то очень мешают, не.

Вывод сетки на графике и привязка к разрешению
Всем привет. Стоит задача реализовать вывод график биомедицинских сигналов на экране на.

Отображение сетки на картинке
Здравствуйте! Как наложить сетку поверх изображения? Есть рисунок, надо, чтобы сетка была нанесена.

Построение графиков с помощью модуля Matplotlib в Python Питон.

Получим график синусоиды в python в отдельном окне

график функции на Python

Отображение нескольких графиков на одном рисунке в Python

В одной области в python можно отобразить графики нескольких функций. Добавим aeyrwb. y=x и нарисуем ее совместно с синусоидой.
Для этого введем еще одну функцию с помощью lambda
y1=lambda x: x
Построим график этой функции
plt.plot(x,y1(x))
В итоге программа в Python для построения графиков двух функций в одном окне

построение графика двух функций в python

Трехмерные поверхности в Python

Получим график трехмерной поверхности в цветовой гамме в специальном окне

график трехмерной поверхности в python

Изменим параметры построения трехмерной поверхности, уменьшим размер сетик, сделаем поверхность более плавной и точной для этого уменьшаем параметры и сменим цветовую гамму на viridis

rstride = 2,
cstride = 2,
cmap = cm.viridis)

Получим график трехмерной поверхности в Python более точный и в другой цветовой гамме

enter image description here

Я не включил код, который фактически генерирует данные для построения графика, для ясности.

В отличие от приведенной выше диаграммы, я хотел бы нарисовать линии сетки, перпендикулярные оси X, через каждую оранжевую (и, следовательно, синюю) точку. Как мне это сделать? Координаты X последовательных оранжевых и синих точек образуют одну и ту же арифметическую прогрессию в моем коде.

Также я замечаю, что номера тиков пронумерованы 1,2. они не подходят для моего приложения. Вместо этого я хотел бы, чтобы каждая последующая линия сетки, которую я прошу перпендикулярно оси X на предыдущем шаге, была пронумерована последовательно от 1 вдоль оси X. Как мне настроить метки Xtick для этого?

2 ответа

Я пытаюсь добавить линии сетки к выходной плотности plot в Mathematica. plot генерируется долгим вычислением в Mathematica, и когда я делаю plot, я забываю добавить параметры Mesh - >True. Я не хочу делать все вычисления и генерировать plot снова, так как это занимает много времени. Можно ли.

Я пытаюсь заставить линии сетки работать правильно на изображении ниже. Использование пакета bReeze для plot кривых мощности турбин с: library(bReeze) pc=pc(Vestas_V90_1.8MW.wtg) plot(pc) Выход plot является: но назначение линий сетки plot с помощью: grid() дает изображение ниже: Есть какие-нибудь.

Линии сетки пересекают точки x (или y). Вам нужно правильно определить метки, чтобы линии сетки пересекали ваши точки данных (точки)

Если вы хотите иметь только вертикальные линии, добавьте это:

Вы должны указать точные места, где вам нужны сетки, используя вызов ax.set_xticks , а затем указать точные числа, которые вы хотите на оси, используя вызов ax.set_xticklabels .

Я строю несколько двух случайных массивов в приведенном ниже примере:

enter image description here

Это и есть результат:

Примечание: Глядя на ваш график, кажется, что фактическая ось x не является целыми числами, но вы хотите , чтобы целые числа начинались с 1, Вероятно, лучший способ сделать это-просто передать массив данных оси y в качестве аргумента для команды plot ( plt.plot(y) вместо plt.plot(x, y) , как я сделал выше. Вы должны решить, подходит ли это для вашего случая.

Похожие вопросы:

Я хочу иметь несколько линий сетки на графике, но на самом деле полнометражные линии слишком much/distracting, даже пунктирные светло-серые линии. Я пошел и вручную сделал некоторое редактирование.

I plot простая строка plot с matplotlib/pyplot. в том же plot, есть до 20 строк. Matplotlib автоматически выбирает цвет линии. Мне нужно нарисовать первую из линий более толстым красным цветом.

Я готовлюсь к презентации,и у меня есть несколько примеров цифр 3D matplotlib. Однако линии сетки слишком светлые, чтобы их можно было увидеть на проецируемых изображениях. Я попробовал использовать.

Я пытаюсь добавить линии сетки к выходной плотности plot в Mathematica. plot генерируется долгим вычислением в Mathematica, и когда я делаю plot, я забываю добавить параметры Mesh - >True. Я не хочу.

Я пытаюсь заставить линии сетки работать правильно на изображении ниже. Использование пакета bReeze для plot кривых мощности турбин с: library(bReeze) pc=pc(Vestas_V90_1.8MW.wtg) plot(pc) Выход plot.

Я хочу plot координатные линии системы координат (например, декартовы координаты), используя matplotlib. Затем я хочу преобразовать их с помощью некоторого линейного преобразования (перекос.

Я пытаюсь изменить толщину и прозрачность линий, составляющих сетку на заднем плане поверхности plot, как в этом примере с сайта Matplotlib : Вот исходный код: from mpl_toolkits.mplot3d import.

У меня есть следующий код, который производит поверхность plot, но он не делает того, что я ожидал. xx, yy = np.meshgrid(dealer_sums, player_sums) def getter(dealer_sum, player_sum): state =.

Как я могу сделать линии сетки в R plot, используя plot , чтобы они не выходили за границы plot? т. е. нужно определить начало и конец линий сетки. В приведенном примере я хочу, чтобы линии сетки.

Я хочу увеличить количество линий сетки на моем plot ( ggplot2 ).), однако, поскольку мой конвейер построения графиков автоматизирован,я не знаю масштабов оси. Как я могу увеличить количество линий.

Читайте также: