Matplotlib
keyboard_arrow_down 83 guides
chevron_leftGraphs Cookbook
Drawing a bar chartDrawing a box plotDrawing a functionDrawing a histogramDrawing a horizontal lineDrawing a line plotDrawing a normal curveDrawing a scatterplotDrawing a single pointDrawing a stacked bar chartDrawing a vertical lineDrawing arrowsDrawing circlesDrawing empty circlesDrawing error barsDrawing horizontal bar plotsDrawing multiple histograms in one plotNormalizing a histogramPlotting scatter plot with category
check_circle
Mark as learned thumb_up
0
thumb_down
0
chat_bubble_outline
0
Comment auto_stories Bi-column layout
settings
Plotting scatter plot with category in Matplotlib
schedule Aug 11, 2023
Last updated local_offer
Tags Python●Matplotlib
tocTable of Contents
expand_more Master the mathematics behind data science with 100+ top-tier guides
Start your free 7-days trial now!
Start your free 7-days trial now!
Basic example of plotting scatter plot with integer categories
Drawing a scatter plot when we have integer categories is simple:
import matplotlib.pyplot as plt
ys = [6,3,6,5,8,5,7]xs = [2,3,5,4,4,4,6]labels = [0,1,1,1,0,1,1]scatter = plt.scatter(xs, ys, c=labels)plt.legend(handles=scatter.legend_elements()[0], labels=[0,1])plt.show()
This generates the following plot:
Basic example of plotting scatter plot with string categories
To plot a scatter plot with string (non-integer) categories, use the following code:
import matplotlib.pyplot as pltimport pandas as pd
labels = ['A','B','A','C']classes = pd.Categorical(labels).codes # convert labels into array of integersscatter = plt.scatter([5,2,3,3], [1,2,4,1], c=classes)plt.legend(handles=scatter.legend_elements()[0], labels=labels)plt.show()
This results in the following plot:
Here, we are first converting our string labels into numerical values using Pandas' Categorical(~)
function:
classes = pd.Categorical(labels).codesclasses
array([0, 1, 0, 2], dtype=int8)
Plotting scatter plot with categories using custom colors
To plot a scatter plot with categories, use ListedColormap
:
import matplotlib.pyplot as pltfrom matplotlib.colors import ListedColormapimport pandas as pd
labels = ['A','B','A','C']classes = pd.Categorical(labels).codescolours = ListedColormap(['g','blue','#EA131B'])scatter = plt.scatter([5,2,3,3], [1,2,4,1], c=classes, cmap=colours)plt.legend(handles=scatter.legend_elements()[0], labels=labels)plt.show()
This produces the following plot:
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!