程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Matplotlib 更改处理图例中的偏移量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Matplotlib 更改处理图例中的偏移量?

开发过程中遇到Matplotlib 更改处理图例中的偏移量的问题如何解决?下面主要结合日常开发的经验,给出你关于Matplotlib 更改处理图例中的偏移量的解决方法建议,希望对你解决Matplotlib 更改处理图例中的偏移量有所启发或帮助;

是否可以更改图例中手柄的偏移量?

在 3 和 6 中,标记就在点上,如果它再靠右一点会更好,这样可以更好地看到手柄的类型。 我对 @H_199_5@markerscale 和 handlelength 进行了一些调整,但这显然没有太大变化。

如何更改偏移量?

Matplotlib 更改处理图例中的偏移量

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1,2])
y = np.array([1,3])

plt.plot(x,y,'o-.',color='b',markersize=6,label='test',markeredgecolor="black")

plt.legend(markerscale=0.9,Fontsize="medium",handlelength=3)
plt.show()

解决方法

这是一个使用 tuple handler 的想法,如 legend guide 中所述。对于每一行,可以有两个条目,一个只有线条样式,一个只有标记样式。设置 pad=0 会忽略两部分之间的填充,因此默认 handlelength 仍然有效。可能需要最新的 matplotlib 版本。

from matplotlib import pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.legend_handler import HandlerTuple

for i,(ls,ms) in enumerate(zip([':','--','-.',':','-.'],['o','o','^','v','d'])):
    plt.plot([0,10],[i,i + 1],marker=ms,ls=ls,mec='black',label=i + 1,color='cornflowerblue' if i < 3 else 'orange')
plt.xlim(-0.5,14)
handles,labels = plt.gca().get_legend_handles_labels()
new_handles = []
for h in handles:
    l = Line2D([],[])
    l.update_from(h)
    l.set_marker('')
    m = Line2D([],[])
    m.update_from(h)
    m.set_linestyle('')
    new_handles.append((l,m))
plt.legend(handles=new_handles,labels=labels,handler_map={tuple: HandlerTuple(ndivide=None,pad=0)})
plt.show()

Matplotlib 更改处理图例中的偏移量

另一种方法是尝试使用 custom line style。

大佬总结

以上是大佬教程为你收集整理的Matplotlib 更改处理图例中的偏移量全部内容,希望文章能够帮你解决Matplotlib 更改处理图例中的偏移量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。