Is it possible to control matplotlib marker orientation?
You can create custom polygons using the keyword argument marker
and passing it a tuple of 3 numbers (number of sides, style, rotation)
.
To create a triangle you would use (3, 0, rotation)
, an example is shown below.
import matplotlib.pyplot as pltx = [1,2,3]for i in x: plt.plot(i, i, marker=(3, 0, i*90), markersize=20, linestyle='None')plt.xlim([0,4])plt.ylim([0,4])plt.show()
I just wanted to add a method to rotate other non-regular polygon marker styles. Below I have rotated the "thin diamond" and "plus" and "vline" by modifying the transform attribute of the marker style class.
import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npfor m in ['d', '+', '|']: for i in range(5): a1, a2 = np.random.random(2) angle = np.random.choice([180, 45, 90, 35]) # make a markerstyle class instance and modify its transform prop t = mpl.markers.MarkerStyle(marker=m) t._transform = t.get_transform().rotate_deg(angle) plt.scatter((a1), (a2), marker=t, s=100)
Have a look at the matplotlib.markers module. Of particular interest is the fact that you can use an arbitrary polygon with a specified angle:
marker = (3, 0, 45) # triangle rotated by 45 degrees.