在MatPlotLib中检索自定义破折号

在MatPlotLib中检索自定义破折号,matplotlib,Matplotlib,关于如何使用Line2D.set_linestyle和Line2D.set_dashes在matplotlib行中设置自定义破折号,有很多问题。然而,我似乎找不到一种方法,在破折号模式设置之后检索它 下面是一个在主站点上设置破折号的示例,我将在下面提到:。为清晰起见,代码复制到此处: 没有行。获取破折号方法。调用line.get_linestyle返回'-'。如何使用MatPlotLib 1.5.1检索实际的破折号图案 更新 对于那些关心我为什么这么问的人:我正在尝试使用dashrule包创建一

关于如何使用
Line2D.set_linestyle
Line2D.set_dashes
在matplotlib行中设置自定义破折号,有很多问题。然而,我似乎找不到一种方法,在破折号模式设置之后检索它

下面是一个在主站点上设置破折号的示例,我将在下面提到:。为清晰起见,代码复制到此处:

没有
行。获取破折号
方法。调用
line.get_linestyle
返回
'-'
。如何使用MatPlotLib 1.5.1检索实际的破折号图案

更新

对于那些关心我为什么这么问的人:我正在尝试使用
dashrule
包创建一个从线条样式到LaTeX的简单转换器。最初的灵感来源于此/。如果我可以完全避免使用linestyle,直接获得虚线和线宽,那就太好了

我已经学会了用做标记,所以最终能够将图例元素添加到轴标签上会很好。如果有更多的研究和经验,我希望将所有内容都整合到一个PR to MatPlotLib中

更新#2

似乎有一个“private”属性
Line2D
\u dashSeq
,它包含我要查找的序列。但是,如果设置一种预设样式,则此属性的值不会更改:例如

>>> line.set_linestyle((0, (2, 5, 7, 3)))
>>> line.get_linestyle()  # This seems expected behavior for custom dash
'--'
>>> line._dashSeq         # This is what I want
(2, 5, 7, 3)
>>> line.set_linestyle('--')
>>> line.get_linestyle()  # This reflects reality now
'--'
>>> line._dashSeq         # This no longer does
(2, 5, 7, 3)

问题是,我现在无法区分这两种样式(预设与自定义),因此我的问题仍然存在。

引用是经过深思熟虑的。这是一段代码,最近受到了一系列的抨击(并最终在绘图时耦合到图形上下文中)。因此,没有快速而肮脏的方法来做到这一点?此外,您认为可以将基于TeX的图例放入标签等中的PR是否有任何价值?我想要么这样做,要么想办法让传奇的所有元素都接受Rotation,这样我就可以做到这一点:。不过,这两个问题似乎都很重要。我正在考虑公共API的以下解决方法,请告诉我是否合理:
\u dashSeq
None
设置一个预设行样式时,添加一个公共
get\u dashSeq
方法来检索样式。这样,
get_dashseq
get_linestyle
结合使用将告诉您有关线条样式的所有信息。这可能需要+快速更新划线图案,以设置线宽或线条样式或划线图案(请参阅)
>>> line.set_linestyle((0, (2, 5, 7, 3)))
>>> line.get_linestyle()  # This seems expected behavior for custom dash
'--'
>>> line._dashSeq         # This is what I want
(2, 5, 7, 3)
>>> line.set_linestyle('--')
>>> line.get_linestyle()  # This reflects reality now
'--'
>>> line._dashSeq         # This no longer does
(2, 5, 7, 3)