In general, increasing the window width increases the degree of smoothing, causing small features in the original 'clean signal' to disappear; decreasing the window width decreasing the degree of smoothing, causing artificial features (arising from the noise) to emerge. Increasing the order of the polynomial while holding the window width constant decreases the degree of noise reduction but is needed for if there is significant data curvature over the width of the smoothing window. To see this for yourself, this click first on the </> Code button, then on the file name Smooth_and_differentiate.ipynb to open and view the underlying  Jupyter notebook containing the Python code used to generate this figure.  Once opened, you can vary the smoothing parameters and re-run the notebook to see the changes. You can also download the notebook to your own computer as a template.

Butterworth filters

Everyone has there own favorite low pass filter smoothing routine. The Savitky-Golay method presented here is a useful and intuitive place to start but it is not necessarily better or worse than any other smoothing routine. For more advanced filtering methods and examples,  see the SciPy Cookbook and the SciPy signal processing reference guide.
Two examples of particular interest from the SciPy Cookbook involve Butterworth filters,   which are designed to have as flat a frequency response as possible over the range of frequencies to be passed while still filtering out unwanted frequencies (such as high frequency noise): 
  1. Butterworth bandpass filter to filter out high frequency noise, low frequency noise, and dc drift
  2. a Butterworth low pass filter for general data smoothing   
Note: The use of a Butterworth filter requires the specification of a cutoff frequency (or frequencies). For a digital Butterworth filter, varying the value of the normalized Nyquist_frequency between zero and one will change the degree of smoothing provided.  Lower values produce greater smoothing of the data.
The example in Fig. \ref{897852} below uses a 3rd order digital Butterworth low-pass filter with a Nyquist frequency of 0.13 (see attached code) to smooth the same signal as in Fig. \ref{987576} ; the original SciPy cookbook example uses a frequency of  0.05. See the  SciPy cookbook  and the Jupyter notebook attached to this figure for additional details.