I have been trying to create a plot with a colourbar, with a code that I have previously used, but this time I changed the equation that represents the values for the y-axis. The code is below:

```
import numpy as np
import matplotlib
import matplotlib as plt
θ= [0.01, 1, 2, 3, 4, 5] #values for the colourbar to use in equation in for loop
x=np.linspace[0.1, 8, 100]
y=1/(np.exp(x)+1) #factor used in equation dependent on the x-axis values
a=(5.3)*10**4 # constant for the equation
norm = matplotlib.colors.Normalize(vmin=np.min(θ), vmax=np.max(θ)) #colourbar max and min values
c_m = matplotlib.cm.cool
s_m = matplotlib.cm.ScalarMappable(cmap='jet', norm=norm)
s_m.set_array([])
#below is the for loop that uses one value of θ at a time, represented as t in the equation
for t in θ:
plt.plot(x, a*y*x*[np.pi/(4*x) - (np.arctan(x*t**3)+ (t**3)/(1 + (t**6) * x**2))], color=s_m.to_rgba(t))
func = lambda x,pos: "{:g}".format(x *100000)
fmt = matplotlib.ticker.FuncFormatter(func)
c_bar=plt.colorbar(s_m, format=fmt)
plt.legend()
plt.xlabel('y=E/T')
plt.ylabel('$f_{ν_s}$')
c_bar.set_label(r'$ \theta \times 10^{-5}$ rads')
plt.show()
```

The problem with this code, is that it constantly gives me the following error message:

*"x and y must have same first dimension, but have shapes (100,) and (1, 100)"*

**I have checked the equations multiple times but I still don't understand what is wrong. Initially I thought that changing my x-range not to have 0 as its lowest limit would do the trick, but it did not and the same message appears.**

I have looked into questions with a similar problem (Matplotlib: ValueError: x and y must have same first dimension) but I'm still unable to solve this problem

## Best Answer

Several issue with your script. The one that is causing the dimensions error is that you are using square brackets in your call to

`plt.plot`

. This creates a list, and multiplies it by the`a*y*x`

term, giving a shape of`[1, 100]`

.So, change

to

Note you also use square brackets when you create

`x`

using linspace when you should use`x=np.linspace(0.1, 8, 100)`

.And finally, your module imports are a little strange. You need to have

and then use

`cm.cool`

and`cm.ScalarMappable`