Search code examples
pythonarraysmatplotlibsubplot

Plot scatter graphs with matplotlib subplot


I am trying to plot a scatter diagram. It will take multiple arrays as input but plot into a single graph. Here is my code:

import numpy as np
import os
import matplotlib.pyplot as plt

ax = plt.gca()
n_p=np.array([17.2,25.7,6.1,0.9,0.5,0.2])   
n_d=np.array([1,2,3])
a_p=np.array([4.3,1.4,8.1,1.8,7.9,7.0])
a_d=np.array([12,13,14])

ax.scatter = ([n_d[0]/n_d[1]],[n_p[0]/n_p[1]])
ax.scatter = ([a_d[0]/a_d[1]],[a_p[0]/a_p[1]])

I will read the arrays from csv file, here I just put a simple example (for that I imported os). I want to plot the ratio of array element 2/ element 1 of n_p (as x-axis) and same with n_d (as y-axis). This will give a point in the graph. Similar operation will be followed by a_p and a_d array, and the point will be appended to the graph. There will be more data to append, but to understand the process, two is enough. I tried to follow example from here. If I use the color, I get syntax error. If I do not use color, I get a blank plot.

Sorry, my coding experience is beginner so code is rather nasty. Thanks in advance.


Solution

  • remove the = from the function call!

    import numpy as np
    import os
    import matplotlib.pyplot as plt
    
    ax = plt.gca()
    n_p=np.array([17.2,25.7,6.1,0.9,0.5,0.2])   
    n_d=np.array([1,2,3])
    a_p=np.array([4.3,1.4,8.1,1.8,7.9,7.0])
    a_d=np.array([12,13,14])
    
    ax.scatter([n_d[0]/n_d[1]],[n_p[0]/n_p[1]])
    ax.scatter([a_d[0]/a_d[1]],[a_p[0]/a_p[1]])