Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make 20 colors available for line plots #11801

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

beyarkay
Copy link

@beyarkay beyarkay commented Jun 28, 2022

This change modifies theme.txt so that there are 20 colors available for Arduino's serial plotter.

These colors are taken from matplotlib's tab20 color theme, and can be recreated like:

$ python3
Python 3.9.13 (main, May 24 2022, 21:13:51)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> import matplotlib.pyplot as plt
>>> for c in plt.cm.tab20.colors: print(matplotlib.colors.to_hex(c))
...
#1f77b4
#aec7e8
#ff7f0e
#ffbb78
#2ca02c
#98df8a
#d62728
#ff9896
#9467bd
#c5b0d5
#8c564b
#c49c94
#e377c2
#f7b6d2
#7f7f7f
#c7c7c7
#bcbd22
#dbdb8d
#17becf
#9edae5

This means that up to 20 individual time series can be plotted before the colors recycle, and these 20 colors are also reasonably different from each other so that you can tell them apart.

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  1. Does your submission pass tests?
  2. Have you lint your code locally prior to submission?

Changes to Core Features:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you successfully ran tests with your changes

This change modifies `theme.txt` so that there are 20 colors available for
Arduino's serial plotter. 

These colors are taken from matplotlib's [tab20 color
theme](https://matplotlib.org/stable/tutorials/colors/colormaps.html#qualitative), 
and can be recreated like:

```sh
$ python3
Python 3.9.13 (main, May 24 2022, 21:13:51)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> import matplotlib.pyplot as plt
>>> for c in plt.cm.tab20.colors: print(matplotlib.colors.to_hex(c))
...
#1f77b4
#aec7e8
#ff7f0e
#ffbb78
#2ca02c
#98df8a
#d62728
#ff9896
#9467bd
#c5b0d5
#8c564b
#c49c94
#e377c2
#f7b6d2
#7f7f7f
#c7c7c7
#bcbd22
#dbdb8d
#17becf
#9edae5
```

This means that up to 20 individual time series can be plotted before the colors recycle,
and these 20 colors are also reasonably different from each other so that you can tell them apart.
@per1234 per1234 added feature request A request to make an enhancement (not a bug fix) SerialPlotter Tools > Serial Plotter labels Jun 28, 2022
@beyarkay
Copy link
Author

First time contributor here, please let me know if there's any changes I should make! love the tool and am happy to help out. This was a personal gripe of mine, as I'm currently working on a project that needs 15 sensors (accelerometer data in 3 dimensions for 5 fingers).

@beyarkay
Copy link
Author

Is this repo still monitored?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request A request to make an enhancement (not a bug fix) SerialPlotter Tools > Serial Plotter
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants