import altair as alt
import pandas as pd
%load_ext lab_black
Today's material is available on github.com/pyomeca/tutorials.
You can follow the materials:
Stop me anytime if you have any questions.
Feel free to contact me to:
The main goal is to give you practical advice that will be useful in your projects.
seances_list = [
("Romain", "2020-01-08", "Programming with Python in biomechanics"),
("François", "2020-01-15", "Rigid bodies, kinematics and dynamics"),
("François", "2020-01-22", "Rigid bodies, kinematics and dynamics - application",),
("François", "2020-01-29", "Optimal control"),
("François", "2020-02-05", "Optimal control - application",),
("François", "2020-02-12", "Optimal control in biomechanics"),
("Romain", "2020-02-19", "Musculoskeletal Modelling"),
("Étienne", "2020-02-26", "Introduction to descriptive statistics",),
("Spring Break", "2020-03-04", "",),
("Romain", "2020-03-11", "Statistics and machine learning in biomechanics",),
("Étienne", "2020-03-18", "Kinematics"),
("Étienne", "2020-03-25", "IMU signal processing"),
("Étienne", "2020-04-01", "EMG"),
("Project", "2020-04-08", ""),
("Project", "2020-04-15", ""),
("Exam", "2020-04-22", ""),
]
seances = pd.DataFrame(seances_list, columns=["instructor", "date", "subject"])
base = alt.Chart(seances).encode(alt.Y("monthdate(date):O", title=None))
scale = alt.Scale(
domain=seances["instructor"].unique().tolist(),
range=["#B0BEC5", "#FFAB91", "#A5D6A7", "#80CBC4", "#EF9A9A", "#F48FB1"],
)
color = base.mark_rect().encode(alt.Color("instructor", legend=None, scale=scale))
text_args = {"fontSize": 20, "color": "#263238"}
subject = base.mark_text(align="left", dx=-370, **text_args).encode(alt.Text("subject"))
instructor = base.mark_text(align="right", dx=370, **text_args).encode(
alt.Text("instructor")
)
(color + subject + instructor).properties(width=800, height=600)
This first course has three parts:
evaluations = pd.DataFrame(
[("Examen", 60, 70), ("Presentations", 20, 30), ("Project", 20, 10)],
columns=["cat", "%", "textPos"],
)
base = alt.Chart(evaluations)
bar = base.mark_bar(size=60).encode(
alt.X("%", title="%", axis=alt.Axis(values=[0, 20, 40, 100])),
alt.Color("cat", legend=None),
)
text = base.mark_text(**text_args).encode(alt.X("textPos"), alt.Text("cat"))
(bar + text).properties(height=62, width=800)