Note
Go to the end to download the full example code
LinePlotter Example#
This example shows how to use the LinePlotter
class
to generate a line chart to compare different learners’ knowledge
on the same topic.
In this example, we use the NoveltyClassifier
to build
a representation of the learners’ knowledge. You could also use
other classifiers like KnowledgeClassifier
(for building
knowledge representation) or InterestClassifier
(for building
interest representation).
from truelearn import learning, datasets, models
from truelearn.utils import visualisations
import plotly.io as pio
# You can also use a custom knowledge component
# if it follows the protocol of history aware knowledge component
data, _, _ = datasets.load_peek_dataset(
test_limit=0, kc_init_func=models.HistoryAwareKnowledgeComponent, verbose=False
)
# select 2 learners from data
learning_events_for_three_learners = [
learning_events for _, learning_events in [data[12], data[14]]
]
classifiers = [
learning.NoveltyClassifier() for _ in range(len(learning_events_for_three_learners))
]
for classifier, learning_events in zip(classifiers, learning_events_for_three_learners):
for event, label in learning_events:
classifier.fit(event, label)
plotter = visualisations.LinePlotter()
# you can optionally set title via `title` method
plotter.title("Comparison of topic across different users")
# you can use line plotter to compare the knowledge across
# different learners.
#
# You need to pass these knowledges in a list.
# and specify the topics you want to compare.
# We usually only put one topic inside ``topics`` list
# because we want to compare cross-sectionally how
# different learners' knowledge of the same topic changes over time
plotter.plot(
[classifier.get_learner_model().knowledge for classifier in classifiers],
topics=["Expected value"],
)
# you can also use plotter.show()
# which is a shorthand for calling pio
pio.show(plotter.figure)
Total running time of the script: (0 minutes 13.069 seconds)