我正试图设置" suptitle"我的Matplotlib多图如下所示:
plt.gcf().suptitle("pc1\npc2", fontsize=10)
下图显示了它的外观:
现在而不是' pc2'在下一行,我想展示一种伪传奇,但没有任何装饰,只是如下面相应的R图所示的简单符号:
见第二行显示' square'接着是MRP这个词,另一个是XRD,然后是XRD等?我试图复制它(不完全但很接近)。正如您在上面显示的代码行中所看到的那样,新行字符" \ n"将标题文本字符串推送到下一行。如果我可以使用标记符号(方形,三角形,星形等)来格式化第二行,那么我已经完成了设置。确切的标记无关紧要,我可以使用任何可以解释的标记,并通过标题字符串显示为符号。我选择的标记向量如下所示(但可以更改为任意一组5个符号):
markers_list = ["s", "o", "*", "^", "+"]
如果您想查看整个Python代码和更多详细信息,可以在以下主题中看到:
MatplotLib Seaborn Multiple Plot Formatting
我不想显示该主题中讨论的图例。第二行上的简单字符串表示就足够了。
答案 0 :(得分:0)
以下是在其中一个图上使用图例但将其放置在图形坐标中的示例。
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(12)
import seaborn.apionly as sns
plt.rcParams["figure.figsize"] = 7,3.5
markers_list = ["s", "o", "*", "^", "+"]
labels = ["MRP","XRD","Geochem","GC", "OR"]
fig, axes = plt.subplots(ncols=3)
for i, ax in enumerate(axes):
a = np.random.normal(size=(66))
sns.distplot(a, ax=ax, hist_kws={"ec":"k","fc":(i/3.,0,1-i/3.)})
this_x= np.array([-1,0,1.5])
data_x, data_y = ax.lines[0].get_data()
this_y = np.interp(this_x, data_x, data_y)
for i, m, l in zip(range(len(labels)), markers_list, labels):
ax.plot(this_x, this_y-i*0.016, marker=m, markersize = 3,
color="black", ls="", label=l)
fig.suptitle("pc1",x=0.5,y=0.98)
axes[0].legend(loc="lower center", ncol=5,
bbox_to_anchor=(0.5,0.8),bbox_transform=plt.gcf().transFigure)
plt.tight_layout()
plt.subplots_adjust(top=0.8)
plt.show()