我有三个情节合并在一个图形中,包含了许多值得注意的信息。我最近能够对图例标签进行颜色编码,而不是用它们的关联线来标记它们。在
但当我试图在其中一个图的另一个位置添加另一组标签时,原来的标签就消失了
import matplotlib.pyplot as plt
from matplotlib import gridspec
import numpy as np
import scipy as sp
import matplotlib.ticker as tic
from matplotlib.patches import Rectangle
fig111 = plt.figure(figsize=(12,6))
gs = gridspec.GridSpec(1,3, width_ratios=[1,1,0.3])
Bind = fig111.add_subplot(gs[0])
BindD = fig111.add_subplot(gs[1], sharey=Bind)
Hist = fig111.add_subplot(gs[2], sharey=BindD)
...
...
empty = Rectangle((0, 0), 0, 0, alpha=0.0)
l = Bind.legend([empty], ['Illustris-1'],
loc='upper left', frameon=False, handlelength=0, handletextpad=0)
lD = BindD.legend([empty], ['Illustris-1-Dark'],
loc='upper left', frameon=False, handlelength=0,
handletextpad=0)
dw = Bind.legend([empty,empty,empty,empty], ['Carina', 'Sculptor', 'Ursa Minor', 'Leo I' ],
loc='center right', frameon=False, handlelength=0, handletextpad=0)
l.get_texts()[0].set_color('slateblue')
lD.get_texts()[0].set_color('crimson')
dw.get_texts()[0].set_color('mediumspringgreen')
dw.get_texts()[1].set_color('orchid')
dw.get_texts()[2].set_color('c')
dw.get_texts()[3].set_color('orange')
gs.update(wspace=0)
plt.setp([BindD.get_yticklabels() ,Hist.get_yticklabels()], visible=False)
plt.show()
在同一个子批次中有两个标签的有效方法是什么?在
从matplotlib图例指南的Multiple legends on the same axes一章中可以看出,在创建第二个图例之前,您需要将第一个图例作为艺术家添加到轴上
相关问题 更多 >
编程相关推荐