module helpers.matplotlib_helper_xyz
#
Short summary#
module ensae_teaching_cs.helpers.matplotlib_helper_xyz
scatter plots
Functions#
function |
truncated documentation |
---|---|
Creates a scatter plot with a different color for each zone id. The function requires matplotlib. |
|
Draws a 2D graph (X,Y, color), the color is chosen based on a value f(x,y) The function requires matplotlib … |
|
Draws a 3D graph (X, Y, Z). The function requires matplotlib and scipy. |
Documentation#
scatter plots
- ensae_teaching_cs.helpers.matplotlib_helper_xyz.scatter_xy_id(xy_id, legend=None, ax=None, **options)#
Creates a scatter plot with a different color for each zone id. The function requires matplotlib.
- Paramètres:
xy_id – list of 3-uple (x, y, zone_id)
legend – dictionary {id: legend } or None if there is not any
ax – existing graph to plot on (can be None)
options – others options: xlabel, ylabel, title, marker, figsize (if ax is None)
- Renvoie:
fig, ax (fig is None if ax was sent to the function)
import random def generate_gauss(x, y, sigma, N=1000): res = [] for i in range(N): u = random.gauss(0, 1) a = sigma * u + x b = sigma * random.gauss(0, 1) + y + u res.append((a, b)) return res nuage1 = generate_gauss(0, 0, 3) nuage2 = generate_gauss(3, 4, 2) nuage = [(a, b, 0) for a, b in nuage1] + [(a, b, 1) for a, b in nuage2] import matplotlib.pyplot as plt from ensae_teaching_cs.helpers.matplotlib_helper_xyz import scatter_xy_id fig, ax = scatter_xy_id(nuage, title="example with random observations", legend={0: "c0", 1: "c1"}) plt.show()
The error
ValueError: Unknown projection '3d'
is raised when the linefrom mpl_toolkits.mplot3d import Axes3D
is missing.
- ensae_teaching_cs.helpers.matplotlib_helper_xyz.scatter_xyc(points, smooth=0, div=10, ax=None, **options)#
Draws a 2D graph (X,Y, color), the color is chosen based on a value f(x,y) The function requires matplotlib and scipy.
- Paramètres:
points – (x,y, z=f(x,y) )
smooth – applies n times a smoothing I * M (convolutional)
div – number of divisions for axis
options – others options: xlabel, ylabel, title, figsize (if ax is None)
ax – matplotlib axis
- Renvoie:
fig, ax (fig is None if ax was sent to the function)
import random def generate_gauss(x, y, sigma, N=1000): res = [] for i in range(N): u = random.gauss(0, 1) a = sigma * u + x b = sigma * random.gauss(0, 1) + y + u res.append((a, b)) return res def f(a, b): return (a ** 2 + b ** 2) ** 0.5 nuage1 = generate_gauss(0, 0, 3) nuage2 = generate_gauss(3, 4, 2) nuage = [(a, b, f(a, b)) for a, b in nuage1] + [(a, b, f(a, b)) for a, b in nuage2] import matplotlib.pyplot as plt from ensae_teaching_cs.helpers.matplotlib_helper_xyz import scatter_xyc fig, ax = scatter_xyc(nuage, title="example with random observations") plt.show()
The error
ValueError: Unknown projection '3d'
is raised when the linefrom mpl_toolkits.mplot3d import Axes3D
is missing.
- ensae_teaching_cs.helpers.matplotlib_helper_xyz.scatter_xyz(points, smooth=0, div=100, ax=None, **options)#
Draws a 3D graph (X, Y, Z). The function requires matplotlib and scipy.
- Paramètres:
points – (x,y, z=f(x,y) )
div – number of divisions for axis
smooth – applies n times a smoothing I * M (convolutional)
ax – existing graph to plot on (can be None)
options – others options: xlabel, ylabel, zlabel, title, elev, angle, figsize (if ax is None) - elev, angle: see view_init)
- Renvoie:
fig, ax (fig is None if ax was sent to the function)
If ax is None, axes are created like:
fig = plt.figure(figsize=options.get('figsize', None)) ax = fig.gca(projection='3d')
import random def generate_gauss(x, y, sigma, N=1000): res = [] for i in range(N): u = random.gauss(0, 1) a = sigma * u + x b = sigma * random.gauss(0, 1) + y + u res.append((a, b)) return res def f(a, b): return (a ** 2 + b ** 2) ** 0.5 nuage1 = generate_gauss(0, 0, 3) nuage2 = generate_gauss(3, 4, 2) nuage = [(a, b, f(a, b)) for a, b in nuage1] + [(a, b, f(a, b)) for a, b in nuage2] import matplotlib.pyplot as plt from ensae_teaching_cs.helpers.matplotlib_helper_xyz import scatter_xyz fig, ax = scatter_xyz(nuage, title="example with random observations") plt.show()
The error
ValueError: Unknown projection '3d'
is raised when the linefrom mpl_toolkits.mplot3d import Axes3D
is missing.