Как добавить разные графики (в виде вставки) в другой граф python
Я бы хотел сделать такой график:
![Ilustrative Figure from google]()
проблема в том, что у меня есть данные из некоторых внешних файлов, и я могу сделать фоновый график, но я понятия не имею, как добавить еще один граф внутри того, который у меня уже есть, и изменить данные разные результаты в обоих из них:
Ниже я добавляю код, который я использую, чтобы сделать фоновый график.
Надеюсь, кто-то может помочь.
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
plt.rc('text',usetex=True)
font = {'family':'serif','size':16}
plt.rc('font',**font)
plt.rc('legend',**{'fontsize':14})
matplotlib.rcParams['text.latex.preamble']=[r'\usepackage{amsmath}']
data=np.loadtxt(r'C:\...\file.txt')
plt.plot(data[:,0],data[:,6],linewidth = 3,label='B$_0$ = 1.5 T d',linestyle= '--', color='black')
plt.show()
Ответы
Ответ 1
Для этого существует более чем один способ, в зависимости от отношений, которые вы хотите иметь вставку.
Если вы просто хотите вставить граф, который не имеет установленного отношения с большим графом, просто сделайте что-то вроде:
import matplotlib.pyplot as plt
fig, ax1 = plt.subplots()
# These are in unitless percentages of the figure size. (0,0 is bottom left)
left, bottom, width, height = [0.25, 0.6, 0.2, 0.2]
ax2 = fig.add_axes([left, bottom, width, height])
ax1.plot(range(10), color='red')
ax2.plot(range(6)[::-1], color='green')
plt.show()
![enter image description here]()
Если вы хотите иметь какую-то связь между ними, посмотрите на некоторые из примеров здесь: http://matplotlib.org/1.3.1/mpl_toolkits/axes_grid/users/overview.html#insetlocator p >
Это полезно, если вы хотите, чтобы вставка была "увеличенной" версией (скажем, ровно в два раза больше масштаба оригинала), которая будет автоматически обновляться при интерактивном панорамировании/масштабировании.
Для простых вложений, однако, просто создайте новые оси, как я показал в приведенном выше примере.
Ответ 2
Вы можете сделать это с помощью inset_axes
методы (см документации):
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
inset_axes = inset_axes(parent_axes,
width="30%", # width = 30% of parent_bbox
height=1., # height : 1 inch
loc=3)
См. Этот пример для полной демонстрации.