python matplotlib dash-dot-dot - 怎么样?

Sch*_*sch 37 python matplotlib linestyle

我使用python和matplotlib来生成图形输出.
有没有一种简单的方法来生成点划线式?
我知道的'--','-.'':'选项.不幸的是,'-..'不会产生点划线.
我查看了set_dashes命令,但这似乎控制了破折号的长度和两个相邻破折号之间的空间.
一种选择可以是在彼此的顶部绘制两条线; 在破折号之间留有足够空间的一个虚线 - 并且一个虚线,与破折号一样大的点宽且间隔开,使得两个点位于每个破折号之间.我不怀疑这可以做到,我只是希望有一个更简单的方法.
我忽略了一个选择吗?

unu*_*tbu 57

您可以定义自定义破折号:

import matplotlib.pyplot as plt

line, = plt.plot([1,5,2,4], '-')
line.set_dashes([8, 4, 2, 4, 2, 4]) 
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

[8, 4, 2, 4, 2, 4] 手段

  • 8分,(破折号)
  • 4分,
  • 2点,(点)
  • 4分,
  • 2点,(点)
  • 4分.

@Achim指出你也可以指定dashes参数:

plt.plot([1,5,2,4], '-', dashes=[8, 4, 2, 4, 2, 4])
plt.show()
Run Code Online (Sandbox Code Playgroud)

产生与上面显示的相同的结果.