Как я могу использовать matplotlib.pyplot.xticks или аналогичные при использовании вспомогательных участков? - PullRequest
1 голос
/ 21 сентября 2019

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

import matplotlib.pyplot as plt
import numpy as np

# ...
# some data acquisition
# ...

ax.imshow(data[i], cmap=plt.cm.jet, origin='bottom')
ax.contour(x, y, dataFitted[i].reshape(2*crop, 2*crop), 3, colors='white')

# adjust scale from pixel to micrometers on heat maps
pixelSize = 5.5 # micrometer/pxl
scaleEnd = crop * pixelSize
wishedTicks = np.array([-150, -100, -50, 0, 50, 100, 150])
originalTicks = np.zeros(wishedTicks.shape[0])
originalTicks = (wishedTicks + scaleEnd) / pixelSize

plt.xticks(originalTicks, wishedTicks)
plt.yticks(originalTicks, wishedTicks)

Пока все хорошо, но если я использую

fig, ax = plt.subplots(nrows=5, ncols=4)

для создания подзаговоров, функция plt.xticks()больше не доступно для моего понимания.

Есть ли способ получить тот же результат, если

  • либо глобально (для всех фигур) манипулировать осью так же, как я это сделалдля одного сюжета

или

  • манипулирование каждым участком индивидуально желаемым способом, как указано выше?

Ответы [ 2 ]

1 голос
/ 21 сентября 2019

Всегда работайте с явными осями, для построения графиков, как для установки галочек / меток.

fig, axs = plt.subplots(5,4, figsize=(9,7))

for ax in axs.flat:
    ax.plot(...)
    ax.set_xticks(ticks)
    ax.set_xticklabels(labels)
0 голосов
/ 21 сентября 2019

Использование plt.subplot (документация) вместо plt.subplots может удовлетворить ваши потребности.

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
x_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k']
y = np.arange(0, 20, 2)

for i in range(1, 5):
        ax = plt.subplot(2, 2, i)
        plt.plot(x, y)
        plt.xticks(x, x_labels)

plt.show()

Производит это: output

Также рекомендуем прочитать эту статью на сюжетах , чтобы увидеть еще несколько полезных вещей, которые вы можете сделать с ними.

...