python matplotlib dash-dot-dot - 怎么做?
我正在使用Python和matplotlib来生成图形输出。
请问有没有简单的方法可以生成一种虚线-点-点的线条样式?
我知道有一些线条样式,比如'--'
(虚线)、'-.'
(虚点线)和':'
(点线)。但是,'-..'
并不能生成虚线-点-点的效果。
我查看过set_dashes
这个命令,但它似乎只是用来控制虚线的长度和相邻虚线之间的间距。
一种可能的办法是把两条线重叠在一起:一条是虚线,虚线之间留有较大的间隔;另一条是点线,点的大小和虚线的宽度相同,并且每两个虚线之间放两个点。我相信这样是可以做到的,但我只是希望能有更简单的方法。
我是不是漏掉了什么选项?
1 个回答
62
你可以定义自定义的虚线样式:
import matplotlib.pyplot as plt
line, = plt.plot([1,5,2,4], '-')
line.set_dashes([8, 4, 2, 4, 2, 4])
plt.show()
[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()
这样做会产生和上面一样的效果。