Categories
DATA MINING DATA SCIENCE DATA VISUALIZATION MACHINE LEARNING PROGRAMMING PYTHON TUTORIALS

How To Change Marker Style In Matplotlib

So in the previous article, we say how to change line style in Matplotlib. But in this article, we will take a look at how we can change the marker style in Matplotlib. So let us start with some idea about what these markers are in the first place. Shall we?

What Are Markers In Matplotlib Plots?

So for us to learn what markers are in Matplotlib plots, let us take a look at our previous example. Alright? Show this is the plot that we had in our previous example:

An example Matplotlib plot with 3 lines drawn from 3 sets of data
An example Matplotlib plot with 3 lines drawn from 3 sets of data

So as you can see here, we have 3 lines drawn using Matplotlib. Right? But how did we get these lines in the first place? Any guess?

To understand that, we need to take a look at the piece of code that generated this plot. So here is what that code looks like:

import matplotlib.pyplot as plt
x = range(1, 10)
plt.plot(x, [xi*1 for xi in x], '-.')
plt.plot(x, [xi*2 for xi in x], '--')
plt.plot(x, [xi*3 for xi in x], ':')
plt.show()

So as you can see, the three lines we have plotted are drawn using these 3 lines of code:

plt.plot(x, [xi*1 for xi in x], '-.')
plt.plot(x, [xi*2 for xi in x], '--')
plt.plot(x, [xi*3 for xi in x], ':')

And what is the data set used to plot these lines? There are 3 sets of data and they are:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

So as you can see, the three data sets shown above is what resulted in the 3 lines above.

But here is the thing. The lines that we have drawn in the plot are nothing but connections to these points. Right?

So in Matplotlib, we call these points as Markers and the lines joining them as Segments.

Aha! Now you know what these markers are, right? But there is another important thing you should notice here. The plot we have in the above pic is made up of both Markers & Segments. So the above Matplotlib plot has both Markers & Segments in it!

Woah..! We didn’t knew that the plot had markers in it right? But where is it then? Why can’t we see it?

Well it is because the markers in this plot are drawn using their default style and hence it is not clearly visible. Wait, what is the default style of a marker then?

What Is The Default Style Of A Marker In Matplotlib Plot?

The default style of a Matplotlib Marker is to draw it as a point. And this is the reason why we are not able to see it. Because we are then connecting them by lines!

But then this begs us the next question:

What can we do to make the markers in Matplotlib visible?

So how are we going to show clearly then? Well, the answer to that once again lies in the parameters we pass to the plot( ) function.

Wait, so how will that look like then?

Well, instead of using the plot( ) function to draw default markers and lines, we do something else. We will ask Matplotlib not to use default markers and also not to draw the lines!

So then, how will that code look like? Well, take a look at it yourself!

import matplotlib.pyplot as plt
x = range(1, 10)
plt.plot(x, [xi*1 for xi in x], '*')
plt.plot(x, [xi*2 for xi in x], '+')
plt.plot(x, [xi*3 for xi in x], '^')
plt.show()

So when we run this piece of code, what do you think will the plot look like? Any guess?

Change Marker Style In Matplotlib
Change Marker Style In Matplotlib

Woah! Where did this nice little plot come from?! How did we get those cool looking stars and triangles in the plot? Huh?!

How To Change Marker Styles In Matplotlib

Well here the thing. When we used the marker style ‘*’, ‘+’ and ‘^’ symbol in our code, it got translated to that. Now that is one nice little feature that Matplotlib library is giving to us. Right?

So how do we know what all Marker styles are made available to us by Matplotlib then?

Well that is when this nifty table below will help you out! Take a look at it. It is showing you all the marker styles you can draw on your Python plot to make it look pretty!

Marker SymbolMarker Style
^Triangle Up
vTria. Down
<Triangle Left
>Tria. Right
1Tripod Down
2Tripod Up
3Tripod Left
4Tripod Right
pPentagon
sSquare
hHexagon
HRoated Hexagon
*Star
+Plus
Horizontal
DDiamond
dLean diamond
|Vertical Line
Available Marker Styles To Draw Using Matplotlib

And this is how you can get some nice little pretty plots using Matplotlib Python library. So I hope this was quite easy to understand for you. But if you still have any questions around it, do let me know. Because I will be more than happy to help! 🙂