我想制作一个这样的图表:
问题是,我从一些外部文件中获取了数据,我可以制作背景图,但我不知道如何在我已经拥有的图中添加另一个图并将数据更改为两者都有不同的结果:
下面我要添加我用来做背景图的代码。 希望有人可以提供帮助。
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()
答案 0 :(得分:36)
根据你想要插图的关系,有多种方法可以做到这一点。
如果您只想插入与较大图表没有设置关系的图表,请执行以下操作:
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()
如果你想在两者之间建立某种关系,请看一下这里的一些例子:http://matplotlib.org/1.3.1/mpl_toolkits/axes_grid/users/overview.html#insetlocator
如果您希望插图是“放大”版本(例如,缩放比原始尺寸的两倍),这会在您以交互方式平移/缩放时自动更新,这非常有用。
对于简单插图,只需创建一个新轴,如上例所示。
答案 1 :(得分:10)
您可以使用inset_axes
方法执行此操作(请参阅docs):
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)
有关完整演示,请参阅this example。