Несколько графиков с Matplotlib в Python - PullRequest
0 голосов
/ 20 сентября 2018

Я на Python и изучаю это на практике.Я хочу сделать два сюжета с Matplotlib в Python.Второй сюжет держит пределы первого.Интересно, как я могу изменить пределы каждого следующего сюжета с предыдущего.Любая помощь, пожалуйста.Какой метод рекомендуется?

X1 = [80, 100, 120, 140, 160, 180, 200, 220, 240, 260]
Y1 = [70, 65, 90, 95, 110, 115, 120, 140, 155, 150]

from matplotlib import pyplot as plt
plt.plot(
    X1
  , Y1
  , color = "green"
  , marker = "o"
  , linestyle = "solid"
)
plt.show()


X2 = [80, 100, 120, 140, 160, 180, 200]
Y2 = [70, 65, 90, 95, 110, 115, 120]

plt.plot(
    X2
  , Y2
  , color = "green"
  , marker = "o"
  , linestyle = "solid"
)
plt.show()

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Есть два способа:

Быстрый и простой способ;установите пределы x и y на каждом графике так, как вам нужно.

plt.xlim(60,200)
plt.ylim(60,200)

(например).Просто вставьте эти две строки непосредственно перед обоими plt.show (), и они будут одинаковыми.

Более сложный, но лучший способ, и это с использованием подзаговоров.

# create a figure object    
fig = plt.figure()
# create two axes within the figure and arrange them on the grid 1x2
ax1 = fig.add_Subplot(121)
# ax2 is the second set of axes so it is 1x2, 2nd plot (hence 122)
# they won't have the same limits this way because they are set up as separate objects, whereas in your example they are the same object that is being re-purposed each time!
ax2 = fig.add_Subplot(122)

ax1.plot(X1,Y1)
ax2.plot(X2,Y2)
0 голосов
/ 20 сентября 2018

Вот один из способов использования subplot, где plt.subplot(1, 2, 1) означает фигуру с 1 строкой (первое значение) и 2 столбцами (второе значение) и 1-й подфигурой (третье значение в скобках, в данном случае означает левый столбец).).plt.subplot(1, 2, 2) означает подзаговор во 2-м столбце (в данном случае правый столбец).

Таким образом, каждая фигура будет регулировать x- и y-пределы в соответствии с данными.Есть и другие способы сделать то же самое. Здесь - это SO-ссылка для вас.

from matplotlib import pyplot as plt
fig = plt.figure(figsize=(10, 4))

plt.subplot(1, 2, 1)
X1 = [80, 100, 120, 140, 160, 180, 200, 220, 240, 260]
Y1 = [70, 65, 90, 95, 110, 115, 120, 140, 155, 150]
plt.plot(X1, Y1, color = "green", marker = "o", linestyle = "solid")
# plt.plot(X1, Y1, '-go') Another alternative to plot in the same style


plt.subplot(1, 2, 2)
X2 = [80, 100, 120, 140, 160, 180, 200]
Y2 = [70, 65, 90, 95, 110, 115, 120]
plt.plot(X2, Y2, color = "green", marker = "o", linestyle = "solid")
# plt.plot(X2, Y2, '-go') Another alternative to plot in the same style

Выход

enter image description here

...