尝试在我的轮廓图中添加图例:
以下是我遇到问题的相关代码部分:
plt.figure()
CS = plt.contourf(gg, cc, zz_miss)
CS.clabel()
lbl = CS.cl_cvalues
plt.xlabel('gamma')
plt.ylabel('C = 1 / lambda')
plt.legend((lbl), loc= 'upper right')
plt.show()
图例的图例标签是正确的,但为什么相关的颜色都被涂抹并且不合适?
答案 0 :(得分:2)
它将等高线图的字面多边形作为标记。这是一个问题。
我建议您创建颜色图例的手动替换。以下是您需要对代码进行的修改(生成的合成数据):
import matplotlib.pyplot as plt
plt.figure()
xx,yy = np.meshgrid(range(100),range(100))
gg = np.sqrt(xx*2+yy*2)
CS = plt.contourf(gg) #, cc, zz_miss)
proxy = [plt.Rectangle((0,0),1,1,fc = pc.get_facecolor()[0]) for pc in CS.collections]
plt.legend(proxy, [str(i) for i in range(8)])
plt.xlabel('gamma')
plt.ylabel('C = 1 / lambda')
plt.show()
,结果如下:
答案 1 :(得分:2)
感谢。
另外,发现一个稍微容易一点:see result
CS = plt.contourf(gg, cc, zz_miss, alpha= 1)
nm, lbl = CS.legend_elements()
plt.legend(nm, lbl, title= 'MyTitle', fontsize= 8)
plt.xlabel('gamma')
plt.ylabel('C = 1 / lambda')
结果如下: