plotly / plotly/plotly.py

Missing functionality in `px.timeline` against `create_gantt()` figure factory

Offen
#3,675 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug P3 regression
Vorherrschende Sprache
Python
Sterne
18.8k
Forks
2.8k
Ø Merge
16 Std. 26 Min.
Gemergte PRs (30 T.)
21

Beschreibung

create_gantt() figure factory is deprecated in favor of px.timeline, but create_gantt() has the feature (argument) group_tasks that is not present with px.timeline.
An additional issue is that the group_task argument is not explained in the create_gantt() documentation check here.

For example, the code:

import plotly.express as px
import pandas as pd

df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Resource='Alex'),
    dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15', Resource='Max'),
    dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30', Resource='Max'),
    dict(Task="Job A", Start='2009-03-02', Finish='2009-05-30', Resource='Alex')
])

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color = "Resource")
fig.update_yaxes(autorange="reversed") # otherwise tasks are listed from the bottom up
fig.show()

Produces:
enter image description here

And I would like to have each tasks in the input data frame into its own line in the y-axis, even for repeating tasks:
enter image description here

We can obtain this using create_gantt() like:

from plotly.figure_factory import create_gantt

fig = create_gantt(df, index_col='Resource', 
                      showgrid_x=True, showgrid_y=True,
                      show_colorbar=True,
                      group_tasks=False
                      )
fig.update_yaxes(autorange="reversed")
fig.show()

Obtaining:
2022-04-11 19_51_14-127 0 0 1_1586

The order follows the order in the df which I found a correct behavior, but an extra input to define the order in create_gantt() would be useful.

Beitragsleitfaden

Beitragsleitfaden öffnen

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

Beginne mit dem Einstiegspunkt px.timeline und vergleiche sein Verhalten mit der Figure-Factory create_gantt(), insbesondere mit dem in den Beispielen gezeigten Argument group_tasks. Überprüfe die API-Dokumentation von create_gantt() auf die fehlende Argumentbeschreibung. Als erledigt gilt die Aufgabe, wenn wiederholte Aufgaben in separaten y-Achsenzeilen mit einer festgelegten Reihenfolge dargestellt werden können und das entsprechende Verhalten dokumentiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
data-visualization
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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