<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Visualization 1
Step1:  Basic plotting
For now, we will work with basic x, y plots to show how the Matplotlib plotting API works.
Step2:  Quick series styling
With a third argument you can provide the series color and line/marker style
Step3:  Here is a list of the single character color strings
Step4:  To change the plot's viewport, use plt.axis([xmin,xmax,ymin,ymax])
Step5:  Multiple series
You can provide multiple series in a single call to plot
Step6:  Or you can make multiple calls to plot
Step7:  Subplots
You can use the subplot function to create a grid of plots in a single figure.
Step8:  More line styling
All plot commands, including plot, accept keyword arguments that can be used to style the lines in more detail. See Controlling line properties for more details
<ASSISTANT_TASK:>
Python Code:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
Explanation: Visualization 1: Matplotlib Basics
Imports
The following imports should be used in all of your notebooks where Matplotlib in used:
End of explanation
t = np.linspace(0,4*np.pi,100)
plt.plot(t, np.sin(t))
plt.xlabel('Time')
plt.ylabel('Signal')
plt.title('My Plot')
Explanation: Basic plotting
For now, we will work with basic x, y plots to show how the Matplotlib plotting API works.
End of explanation
plt.plot(t, np.sin(t), 'm-.*')
Explanation: Quick series styling
With a third argument you can provide the series color and line/marker style:
End of explanation
from matplotlib import lines
lines.lineStyles.keys()
from matplotlib import markers
markers.MarkerStyle.markers.keys()
Explanation: Here is a list of the single character color strings:
b: blue
    g: green
    r: red
    c: cyan
    m: magenta
    y: yellow
    k: black
    w: white
The following will show all of the line and marker styles:
End of explanation
plt.plot(t, np.sin(t)*np.exp(-0.1*t),'bo')
plt.axis([-1,3,0,1.])
Explanation: To change the plot's viewport, use plt.axis([xmin,xmax,ymin,ymax]):
End of explanation
plt.plot(t, np.sin(t), 'r.', t, np.cos(t), 'g-')
Explanation: Multiple series
You can provide multiple series in a single call to plot:
End of explanation
plt.plot(t, np.sin(t))
plt.plot(t, np.cos(t))
Explanation: Or you can make multiple calls to plot:
End of explanation
plt.subplot(1,2,1)
plt.plot(t, np.exp(0.1*t))
plt.ylabel('Exponential')
plt.subplot(1,2,2)
plt.plot(t, np.sin(t))
plt.ylabel('Quadratic')
plt.xlabel('x')
Explanation: Subplots
You can use the subplot function to create a grid of plots in a single figure.
End of explanation
plt.plot(t, np.sin(t), marker='o', color='darkblue',
         linestyle='--', alpha=0.3, markersize=10)
Explanation: More line styling
All plot commands, including plot, accept keyword arguments that can be used to style the lines in more detail. See Controlling line properties for more details:
End of explanation
<END_TASK>