Home > Software engineering >  Specify color of classes for mplot3d and show label
Specify color of classes for mplot3d and show label

Time:07-04

using this code in order to generate a 3D plot:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d


fig = plt.figure()
plt.figure(figsize=(15, 12))
ax = plt.axes(projection="3d")

x= x_pca[:,0]
y= x_pca[:,1]
z = x_pca[:,2]


y_train_new = y_train_orig.argmax(1)

ax.scatter3D(x, y, z, c = y_train_new, marker = 'o', alpha=0.6, cmap='inferno')
plt.title("3D Scatterplot: 95% of the variability captured", pad = 15)
ax.set_xlabel('First principal component')
ax.set_ylabel('Second principal component')
ax.set_zlabel('Third principal component')

I would like to change the colors of the classes.

This is the output that I get:

enter image description here

Could the problem lie with my y_train_new data? It is an array of dtype =int64?

How do I go about changing the color of for the different classes? Thanks!

Data:

feat1 feat2 feat3 feat4 Label
-3.8481877 -0.47685334 0.63422906 1.0396314 1
-2.320888 0.65347993 1.1519914 0.12997247 1
1.5827686 1.4119303 -1.7410104 -4.6962333 1
-0.1337152 0.13315737 -1.6648949 -1.4205348 1
-0.4028037 1.332986 1.3618442 0.3292255 1
-0.015517877 1.346349 1.4083523 0.87017965 1
-0.2669228 0.5478992 -0.06730786 -1.5959451 1
-0.03318152 0.3263167 -2.116833 -5.4616213 1
0.4588691 0.6723614 -1.617398 -4.3511734 1
0.5899199 0.66525555 -1.694493 -3.9452586 1
1.610061 2.4186094 1.8807093 1.3764497 0
1.7985699 2.4387648 1.6306056 1.1184534 0
-9.222036 -9.9776 -9.832 -9.909746 0
0.21364458 -1.0171559 -4.9093766 -6.2154694 0
-0.019955145 -1.1677283 -4.6549516 -5.9503417 0
0.44730473 -0.77167743 -4.7527356 -5.971007 0
-0.16508447 -0.005777468 -1.5020386 -4.49326 0
-0.8654994 -0.54387957 -1.300646 -4.621529 0
-1.7471086 -2.0005553 -1.7533782 -2.6065414 0
-1.5313624 -1.6995796 -1.4394685 -2.600004 0

CodePudding user response:

Thanks for the data provided. As you can see from your data, Label is either 0 or 1. As you chose inferno as the cmap, the extremes of that colormap are the yellow and black, which is what you are seeing.

The easier way to change the colors is to choose a colormap that has the colors you need, that should help. The set of colormaps is available enter image description here

But, if you need specific colors, then you can create your own colormap and use that instead. The documentation for this is available enter image description here

  • Related