mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-04-22 02:23:48 +00:00
37 lines
913 B
Python
37 lines
913 B
Python
"""
|
|
Polynomial Fit Plot with Regression Transform
|
|
=============================================
|
|
This example shows how to overlay data with multiple fitted polynomials using
|
|
the regression transform.
|
|
"""
|
|
# category: scatter plots
|
|
|
|
import numpy as np
|
|
import pandas as pd
|
|
import altair as alt
|
|
|
|
# Generate some random data
|
|
rng = np.random.RandomState(1)
|
|
x = rng.rand(40) ** 2
|
|
y = 10 - 1.0 / (x + 0.1) + rng.randn(40)
|
|
source = pd.DataFrame({"x": x, "y": y})
|
|
|
|
# Define the degree of the polynomial fits
|
|
degree_list = [1, 3, 5]
|
|
|
|
base = alt.Chart(source).mark_circle(color="black").encode(
|
|
alt.X("x"), alt.Y("y")
|
|
)
|
|
|
|
polynomial_fit = [
|
|
base.transform_regression(
|
|
"x", "y", method="poly", order=order, as_=["x", str(order)]
|
|
)
|
|
.mark_line()
|
|
.transform_fold([str(order)], as_=["degree", "y"])
|
|
.encode(alt.Color("degree:N"))
|
|
for order in degree_list
|
|
]
|
|
|
|
alt.layer(base, *polynomial_fit)
|