How to draw more type of lines in matplotlib
Here's another example which you can use to try out different custom line styles (defined as elements in the list 'dashList'), and adapt if you want to use multiple different custom line styles in your plots:
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()
You can create far more than these four types using the dashes
argument to specify custom dash styles. For example:
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')
The dashes
argument is a list of integers which specify the size of dashes and spaces in points: in the example above there is a 10-point dash, a 5-point space, a 20-point dash, and another 5-point space, and then the sequence repeats.