Tim*_*thy 10 python matplotlib
matplotlib中只有4种类型的线型:[' - ',' - .',' - ',':'].可以在matplotlib中制作超过4种不同类型的线条样式吗?
jak*_*vdp 12
您可以使用dashes参数创建远远超过这四种类型的指定来指定自定义短划线样式.例如:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10)
y = np.sin(x)
plt.plot(x, y, dashes=[10, 5, 20, 5], linewidth=2, color='black')
Run Code Online (Sandbox Code Playgroud)
该dashes参数是用于指定短划线和空格的大小的点一列整数:在上面的例子中有10点划线,5点空间,一个20点划线,另5点的空间,并然后序列重复.
下面是另一个示例,您可以使用它来尝试不同的自定义行样式(在列表'dashList'中定义为元素),并在您的图中使用多个不同的自定义行样式进行调整:
import matplotlib.pyplot as plt
dashList = [(5,2),(2,5),(4,10),(3,3,2,2),(5,2,20,2)]
# List of Dash styles, each as integers in the format: (first line length, first space length, second line length, second space length...)
# set up the axes to look nice:
frame1 = plt.gca()
frame1.axes.xaxis.set_ticklabels([]) # hide x axis numbers
plt.xlim(0,6) # set x and y axis extents
plt.ylim(-0.5,len(dashList)-0.5)
plt.ylabel("dashList element") # add a label to the y axis
for n in range(0,len(dashList)):
plt.plot([0.5,4],[n,n], color = 'black', linestyle='--', dashes=dashList[n]) # plot a horizontal line using each custom line style
# NB plot.plt draws a line between the following points: ([x0,x1],[y0,y1])
plt.text(4.5,n,dashList[n]) # ...and show the numbers used to generate each custom linestyle
plt.show()
Run Code Online (Sandbox Code Playgroud)
最新的 matplotlib 文档(目前未发布)现在包括许多自定义线型示例。这是一个屏幕截图:
为了更容易复制粘贴,以下是用于制作该图的部分代码:
linestyle_tuple = [
('loosely dotted', (0, (1, 10))),
('dotted', (0, (1, 1))),
('densely dotted', (0, (1, 1))),
('loosely dashed', (0, (5, 10))),
('dashed', (0, (5, 5))),
('densely dashed', (0, (5, 1))),
('loosely dashdotted', (0, (3, 10, 1, 10))),
('dashdotted', (0, (3, 5, 1, 5))),
('densely dashdotted', (0, (3, 1, 1, 1))),
('dashdotdotted', (0, (3, 5, 1, 5, 1, 5))),
('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5464 次 |
| 最近记录: |