Удаление базовой линии (маркера) с графика Ганта? - PullRequest
0 голосов
/ 20 марта 2019

Я рисую большую диаграмму Ганта, используя Plotly.
Вот несколько залоговых данных входных данных ("test.data"):

1493194324  2017-04-26 10:12:04 A   1493195658  2017-04-26 10:34:18
1493196858  2017-04-26 10:54:18 B   1493197661  2017-04-26 11:07:41
1493200062  2017-04-26 11:47:42 C   1493202312  2017-04-26 12:25:12
1493202912  2017-04-26 12:35:12 A   1493206109  2017-04-26 13:28:29
1493207309  2017-04-26 13:48:29 B   1493208470  2017-04-26 14:07:50
1493210270  2017-04-26 14:37:50 A   1493212328  2017-04-26 15:12:08
1493213529  2017-04-26 15:32:09 B   1493214283  2017-04-26 15:44:43
1493270086  2017-04-27 07:14:46 C   1493270988  2017-04-27 07:29:48
1493275788  2017-04-27 08:49:48 A   1493276767  2017-04-27 09:06:07
1493278683  2017-04-27 09:38:03 A   1493279943  2017-04-27 09:59:03
1493280543  2017-04-27 10:09:03 C   1493281660  2017-04-27 10:27:40
1493284060  2017-04-27 11:07:40 B   1493285028  2017-04-27 11:23:48

Я использую этот код для построения диаграммы Ганта:

import plotly.offline as offline
import plotly.plotly as py
import plotly.figure_factory as ff
import plotly.graph_objs as go
import plotly.io as pio
import pandas as pd
import numpy as np

filePath="test.data"

df = pd.read_table(filePath,
                   header=None,
                   usecols=[1,2, 4],
                   sep='\t',
                   converters={1:np.datetime64, 3:np.datetime64},
                   )
df.columns = ['Start','Task', 'Finish']
df['Resource'] = 'Done'

colors = {'Done': 'rgb(0, 240, 0)',}

fig = ff.create_gantt(df,
                      title='My Tasks',
                      bar_width=0.1,
                      showgrid_x=False,
                      showgrid_y=False,
                      colors=colors,
                      index_col='Resource',
                      show_colorbar = True,
                      group_tasks=True,
                     )

fig['layout'].update(plot_bgcolor = 'rgba(0,0,0,250)',
                     paper_bgcolor = 'rgba(0,0,0,0)',
                     showlegend = True,
                    )

offline.plot(fig, image = 'png', image_filename='test', output_type='file', image_width=500, image_height=500, filename='test.html')

Вывод выглядит так:

enter image description here

Я хотел бы знать, как я могу удалить эти белые точки с обеих сторон зеленых прямоугольников? или хотя бы сменить цвет?

1 Ответ

0 голосов
/ 21 марта 2019

Так что, похоже, что эти белые точки - это «Маркер».
Поэтому было бы достаточно сделать их прозрачными.
Я решил использовать цикл таким образом, чтобы (в будущем) можно было менять цвет каждой точки по отдельности.

Добавление этого кода непосредственно перед последней строкой (offline.plot ...) делает свое дело.

marker = dict(color = 'rgba(0, 0, 0, 0)')
for i in fig['data']:
    i.update(marker = marker)

enter image description here

Дополнительно
Может быть полезно сделать обратное!
Что означает сохранение маркеров и удаление прямоугольников.
В этом случае мы можем скрыть прямоугольники, установив bar_width в 0:

bar_width=0.0

и добавление цвета к маркерам:

marker = dict(color = 'rgba(255, 255, 255, 255)')

enter image description here

...