html中legend设置大小,如何更改单个图例标签的大小?

如图所示,相同的希腊字母字体大小似乎小于普通字符.我要使它们看起来大小相同,如何实现?

guQ4u.png

图的代码如下:

import numpy as np

import math

import matplotlib.pyplot as plt

alpha=np.arange(0,1,0.01)

gamma=np.sin(2*np.pi*alpha)

x=alpha

y=np.cos(2*np.pi*x)

plt.plot(x,y,label=r'cosine function')

plt.plot(alpha,gamma,label=r'$\gamma=\sin(\alpha)$')

plt.legend(loc=0,fontsize=20)

plt.show()

解决方法:

这有一些技巧.如果您只对解决方案感兴趣,请向下滚动至末尾.

plt.legend返回带有一个允许您修改图例外观的方法的Legend对象.因此,首先我们将保存Legend对象:

legend = plt.legend(loc=0, fontsize=20)

我们正在寻找的方法是Legend.get_texts().这将返回Text对象的列表,其对象控制图例文本的大小,颜色,字体等.我们只需要第二个Text对象:

text = legend.get_texts()[1]

Text对象具有一个称为Text.set_fontsize的方法.因此,让我们尝试一下.总之,代码的结尾应如下所示:

legend = plt.legend(loc=0,fontsize=20)

text = legend.get_texts()[1]

text.set_fontsize(40)

这就是我们得到的:

IRqme.png

嗯似乎两个图例条目都已变大.这当然不是我们想要的.这是怎么回事,我们如何解决?

简而言之,每个图例条目的大小,颜色等由FontProperties类的实例管理.问题在于两个条目共享同一实例.因此,设置一个实例的大小也会更改另一个实例的大小.

解决方法是创建一个新的字体属性的独立实例,如下所示.首先,我们像以前一样得到文本:

text = legend.get_texts()[1]

现在,我们获取字体属性对象,而不是立即设置大小,但是请确保将其复制:

props = text.get_font_properties().copy()

现在,我们使这个新的独立字体属性实例化我们的文本属性:

text.set_fontproperties(props)

现在,我们可以尝试设置此图例条目的大小:

text.set_size(40)

现在,代码结尾应如下所示:

legend = plt.legend(loc=0,fontsize=20)

text = legend.get_texts()[1]

props = text.get_font_properties().copy()

text.set_fontproperties(props)

text.set_size(40)

制作一个看起来像

gJUji.png

标签:matplotlib,plot,python

来源: https://codeday.me/bug/20191119/2036022.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值