Constellation

Hello this is my first project.Kindly review it.

Making the 2-D plot

%matplotlib notebook
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = [-0.41, 0.57, 0.07, 0.00, -0.29, -0.32,-0.50,-0.23, -0.23]
y = [4.12, 7.71, 2.36, 9.10, 13.35, 8.13, 7.19, 13.25,13.43]
z = [2.06, 0.84, 1.56, 2.07, 2.36, 1.72, 0.66, 1.25,1.38]
fig=plt.figure()
plt.plot(x, y, 'o', color='purple')
plt.show()

For the 3-D figure

fig_3d=plt.figure()
fig_3d.add_subplot(1, 1, 1, projection='3d')
plt.plot(x, y, z, 'o', c='orange', marker='*')
plt.show()

Here I have used plt.plot instead of the plt.scatter command I would like to know if this is correct as both of them give the same result.

2 Likes

It all seems straightforward, easy to read and it does the job. Dead on.

In regards to your query this might be a bit in depth to consider at this point in the skill path. But if you are curious…
From what I found, the matplotlib documentation on scatter states the following- " The plot function will be faster for scatterplots where markers don’t vary in size or color."

So for plotting in 2D an argument could be made that plot would be a better choice (where plotting takes considerable time/computational resources) than scatter but make sure this is clear in your code for the sake of maintenance and readability.

For 3D you might have to do your own testing but I think the same applies in that the plot method is a little faster. This will likely be more noticeable in 3D when attempting to change the viewing angle etc.

I wouldn’t worry about it for now in but in the future be aware that the objects returned by scatter and plot are different and they are both different again when peformed on a 3D axis. Something to consider when choosing which one to use as the methods available for these objects are different.

1 Like

Hi I am uploading my code for the visualization project:

2D Visualization-

%matplotlib notebook
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(4,3))
ax1 = fig.add_subplot(1,1,1)
ax1.scatter(x,y,marker='*',c='red',)
plt.title("Orion 2D Visualization")
plt.show()

3D visualization-

fig_3d = plt.figure()
ax2 = fig_3d.add_subplot(1,1,1,projection="3d")
plt.title("Orion 3D Visualization")
ax2.scatter(x,y,z,s=50,marker='*',c='red')
plt.show()

I have used ax.scatter() for making the scatter plot instead of plt.scatter(). If you could kindly elaborate on the differences and the preferred approach. Thank you.

I have been challenged by how others have played around with their presentation. Very thoughtful.