matplotlib / matplotlib/cycler

Allow getitem from a cycler

Offen
#27 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
83
Forks
51
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

It would be useful to add `__getitem__` functionality to `cycler`.

The use case is a "crowded" for loop where you want to get the cycler style without using a loop variable. Something like:

```
data_cycler = cycler('alpha', (0.2, 0.4, 0.6)) + cycler('color', ('r', 'g', 'b'))
fit_cycler = cycler('color', ('k', 'm', 'orange'))

for i, (data, fit) in enumerate(zip(data_list, fit_list)):
...
plt.plot('x', 'y', data=data, data_cycler[i])
plt.plot('x', 'y', data=data, fit_cycler[i])
...
```

In this case the index `i` is computed anyway, so using it for the cyclers would be handy, instead of adding the cycler inside `zip()`.

Ideally `mycycler[i]` should return the item with index `i % len(mycycler)`.

I haven't looked at the code yet. Would this be possible? Would a PR be welcome?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Lies zunächst die Implementierung von cycler und die vorhandenen Tests und konzentriere dich darauf, wie Zyklen iteriert werden und wie ihre Länge verfügbar gemacht wird. Füge den Indexzugriff mit dem angeforderten Modulo-Verhalten hinzu und aktualisiere die Tests, um zu zeigen, dass mycycler[i] das Element an der Position i % len(mycycler) zurückgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.