6

Suppose we have a figure with three plots in it for three different parameters. But for the all three plots We have same temperature T=4K . Then how can I add this information in the figure?

I am not interested to write it in the Caption. I want it on the figure itself.

4

5 回答 5

10

figtext会很好用。

figtextover textand的优点annotatefigtext默认使用图形坐标,而其他默认使用坐标轴的坐标(因此,如果不同绘图之间的坐标轴不同,“T=4K”会四处移动)。

import matplotlib.pyplot as plt

plt.figure()
plt.xlim(-10, 10)
plt.ylim(0, .01)
plt.figtext(.8, .8, "T = 4K")
plt.show()

在此处输入图像描述

于 2013-04-17T18:35:01.147 回答
4

这是使用的演示annotate。查看此示例以了解不同样式的注释。

import matplotlib.pyplot as plt
import numpy as np

plt.ion()
fig, ax = plt.subplots()

x = np.linspace(0,4,100)

plt.plot(x,2*x)
plt.plot(x,x**2)
plt.plot(x,np.sqrt(8*x))

ax.annotate('T = 4K', xy=(2,4), xycoords='data',
            xytext=(-100,60), textcoords='offset points',
            arrowprops=dict(arrowstyle='fancy',fc='0.6',
                            connectionstyle="angle3,angleA=0,angleB=-90"))

plt.show()
raw_input()

在此处输入图像描述

于 2013-04-17T20:38:57.513 回答
4

figtext可以在多个子图图形的底部进行注释,就像独立于图形的注释一样,因此您可以在一张图片中添加额外的注释或备注。我也在找这个。感谢你们!:-)

import matplotlib.pyplot as plt

plt.figure(1)
plt.suptitle("SOME TITLE HERE")
#FIRST SUBPLOT
plt.subplot(311)
plt.ylabel(r"$a [m/s^2]$") # YOU CAN USE LaTeX TYPESETTING IN PYPLOT STRINGS!
plt.xlabel("time [s]")
plt.grid(True)
plt.plot(some_data)
# SECOND SUBPLOT
plt.subplot(312)
...
# THIRD SUBPLOT
plt.subplot(313)
...
# BOTTOM LABEL
plt.figtext(0.5, 0, "SOME LABEL BELOW ALL SUBPLOTS", ha="center", fontsize=7, bbox={"facecolor":"orange", "alpha":0.5, "pad":5})
# DRAW THE PLOT
plt.show()

如果 , Notreha=center将使字符串居中x=0.5。您还可以使用fontsizebbox参数来更改字符串及其区域的外观。

于 2017-05-03T19:16:10.713 回答
2

好吧,我不确定您的意思,但是您可以使用该text()方法将文本添加到情节中。

在 matplotlib pyplot 中绘制文本

于 2013-04-17T17:51:36.390 回答
0

我建议在 T=4K 区域周围设置一个灰色水平区域

如果您查看matplotlib 文档axhspan(ymin, ymax, xmin=0, xmax=1, **kwargs)的 axes,您可以这样做:

水平和垂直区域

于 2013-04-17T17:52:11.570 回答