Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to plot graph where the indexes are strings

Tags:

python

pandas

I'm running with python 3.7.6 and I have the following dataframe:

         col_1  col_2  col_3  col_4
GP           1      1      1      1
MIN          1      1      1      1
PTS          1      1      1      1
FGM          1      1      0      1
FGA          0      1      0      0
FG%          0      1      1      1
3P Made      0      1      1      0
AST          0      1      1      0
STL          0      1      0      0
BLK          0      1      1      0
TOV          0      0      1      0

I want to plot the dataframe as scatter plot or other (dot's plot) where:

X axis - dataframe indexes

Y axis - dataframe columns

points on the graph are according to the values from dataframe (1 - show on graph and 0 not)

How can I do it ?

like image 923
user3668129 Avatar asked Mar 29 '20 14:03

user3668129


1 Answers

I'm not sure about scatter, but you can use imshow to display the binary values:

fig, ax = plt.subplots()
ax.imshow(df, cmap='gray')
ax.set_xticks(range(df.shape[1]))
ax.set_xticklabels(df.columns)

ax.set_yticks(range(df.shape[0]))
ax.set_yticklabels(df.index)
plt.show()

Output:

enter image description here


Update: scatter also possible:

plt.scatter(*np.where(df.T))
plt.xticks(range(df.shape[1]), df.columns)
plt.yticks(range(df.shape[0]), df.index)
plt.show()

Output:

enter image description here

like image 185
Quang Hoang Avatar answered Oct 26 '22 22:10

Quang Hoang