Skip to content

Commit 52a9ba0

Browse files
committed
paper: update statement of need for state of the field
paper: clarify out of scope paper: reword spelling: typo
1 parent fe8f169 commit 52a9ba0

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

paper/paper.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ Complete tutorials, examples, and API documentation are available on https://mpl
3737

3838
<!-- A Statement of need section that clearly illustrates the research purpose of the software and places it in the context of related work. -->
3939

40-
The ability to interact dynamically with plots through widgets such as sliders can be a powerful tool in the scientific process and in pedagogy. For instance, varying a parameter of a mathematical model plotted on top of data helps to understand the relationship between the model and the data. Similarly, exploratory data analysis can be enhanced by interactively modifying aspects of the plot such as which points are displayed, or the threshold level of a displayed image.
40+
The ability to interact dynamically with plots through widgets such as sliders can be a powerful tool in the scientific process and in pedagogy. For instance, varying a parameter of a mathematical model plotted on top of data helps to understand the relationship between the model and the data. Similarly, exploratory data analysis can be enhanced by interactively modifying aspects of the plot such as which points are displayed, or the threshold level of a displayed image. `mpl-interactions`' core goal is to make this aspect of interactive plotting easier when using Matplotlib. Other interactive functionalities are out of scope as they are provided by Matplotlib (e.g. zooming and panning), or by other third party packages (e.g. point selection).
4141

42-
Matplotlib provides mechanisms for updating elements (artists) in figures. However, the APIs for these artists are not consistent and some are under- or undocumented. Furthermore, the creation and positioning of the native Matplotlib widgets is nontrivial. While the `ipywidgets` [@interactive_Jupyter_widgets] library makes widget creation and positioning easier, it is difficult to integrate with matplotlib in a performant manner. The easiest way to do so is to use the `ipywidgets`' `interact()` function, which automatically generates sliders and other widgets to control arguments to arbitrary python functions. However, this can result in completely regenerating the figure which can be slow. Alternatively, the user needs to remember the specifics of how to update each individual artist.
42+
Matplotlib provides mechanisms for updating elements (artists) in figures. However, the APIs for these artists are not consistent and some are under- or undocumented. Furthermore, the creation and positioning of the native Matplotlib widgets is nontrivial. While the `ipywidgets` [@interactive_Jupyter_widgets] library makes widget creation and positioning easier, it is difficult to integrate with Matplotlib in a performant manner. The easiest way to do so is to use the `ipywidgets`' `interact()` function, which automatically generates sliders and other widgets to control arguments to arbitrary python functions. However, this can result in completely regenerating the figure which can be slow. Alternatively, the user needs to remember the specifics of how to update each individual artist. While `matplotlib` and `ipywidgets` provide the tools for controlling plots with widgets, the overhead of implementing such control can overwhelm its utility. `mpl-interactions` fills this gap by making it easy for users to generate widgets that dynamically control plots.
4343

44-
While `matplotlib` and `ipywidgets` provide the tools for controlling plots with widgets, the overhead of implementing such control can overwhelm its utility. `mpl-interactions` fills this gap by making it easy for users to generate widgets that dynamically control plots.
44+
There are a wide range of data visualization tools for Python, such as Altair, Holoviz, and plotly, which provide rich interactive plotting experiences. These tools often have overlaping functionality with `mpl-interactions` and in some cases provide a greater range of interactive capabilities. However, they may not be useful for a user already invested in using Matplotlib, or for a user for whom Matplotlib is otherwise the best solution. For such users `mpl-interactions` adds functionality to `Matplotlib`. To this end `mpl-interactions` closely follows the semantics of the Matplotlib API, rather than creating a separate set of semantics, like the other mentioned libraries. Thus it enhances an analysis workflow that uses Matplotlib by enabling users to add interactive features to a library they are already using, rather than using different libraries for different aspects of the data analysis process.
4545

4646
# Overview
4747

0 commit comments

Comments
 (0)