# SineCosine Wave

As a beginner this is my first code. Any comments?

import numpy as np
import math
import matplotlib.pylab as plt

x=np.linspace(-360,360,45)*np.pi/180
plt.subplot(111)
_sin=plt.plot(x, np.sin(x),label="Sine Curve")
_cos=plt.plot(x,np.cos(x),label="Cos Curve")
#_tan=plt.plot(x,np.tan(x),label="Tan Curve")
plt.legend(['sin','cos','tan'])

plt.show()#This line might be required on some python implementations.

• (To split an excessively fine hair, not specifying in any way what the code is to accomplish (beyond naming a theme) makes it correspondingly hard to tell whether the code works as intended.) Dec 9, 2020 at 7:50
• @greybeard Considering the title, I think it's supposed to plot (co)sine waves.
– Mast
Dec 9, 2020 at 21:12

In addition to SuperStormer's points ...

# Unused variables

_sin and _cos are never used. You don't need to assignments to these variable.

# Naming conventions

In the event you will eventually use them...

Leading underscore are used to indicate private members of a class. To avoid collisions with keywords, by convention, a trailing underscore is used (i.e. sin_ & cos_).

# Unused arguments

'tan' is being passed to plt.legend(), but there is no tangent plot.

It works, but it is a bad habit to get into. Pass the desired curve titles directly to the plt.plot() function (i.e., label="sin"), and simply call plt.legend() with no arguments.

# Magic numbers

What is 111 and why are you passing it to subplot()?

# Updated code

import numpy as np
import matplotlib.pylab as plt

x = np.linspace(-360, 360, 45) * np.pi / 180

plt.subplot()
sin_ = plt.plot(x, np.sin(x), label="sin")
cos_ = plt.plot(x, np.cos(x), label="cos")
#tan_ = plt.plot(x, np.tan(x), label="tan")

plt.legend()

# plt.show()   # For CPython


Secondly, check out PEP 8, the Python style guide. stdlib imports should be at the very top, then 3rd-party imports. However, math isn't even used anywhere, so you can just remove the import entirely.

In addition, your spacing is a bit inconsistent. Assignments should have 1 space on each side and there should be a space after the commas within a func call. I recommend using an auto-formatter to fix these stylistic issues, such as black or yapf.