Построение диаграммы Cobra с помощью Python

#python #excel

#python #excel

Вопрос:

Вот мои данные, которые я хотел бы отобразить. Цель состоит в том, чтобы построить первый столбец (базовую дату) по столбцам A, B, C, D и т. Д…

     Baseline Date   A             B         C           D          E
0   14/08/2020  15/10/2020  15/10/2020  19/11/2020  29/10/2020  13/10/2020
1   21/08/2020  20/03/2021  13/05/2022  10/12/2020  3/12/2020   5/11/2020
2   28/08/2020  10/03/2021  3/05/2022   30/11/2020  23/11/2020  26/10/2020
3   4/09/2020   13/03/2021  6/05/2022   3/12/2020   26/11/2020  29/10/2020
4   11/09/2020  18/03/2021  11/05/2022  8/12/2020   1/12/2020   3/11/2020
5   18/09/2020  21/03/2021  14/05/2022  11/12/2020  4/12/2020   6/11/2020
6   25/09/2020  19/03/2021  12/05/2022  9/12/2020   2/12/2020   4/11/2020
7   2/10/2020   22/03/2021  15/05/2022  12/12/2020  5/12/2020   7/11/2020
8   9/10/2020   28/03/2021  21/05/2022  18/12/2020  11/12/2020  13/11/2020
9   16/10/2020  31/03/2021  24/05/2022  21/12/2020  14/12/2020  16/11/2020
10  23/10/2020  3/04/2021   27/05/2022  24/12/2020  17/12/2020  19/11/2020
11  30/10/2020  9/04/2021   2/06/2022   30/12/2020  23/12/2020  25/11/2020
12  6/11/2020   9/04/2021   2/06/2022   30/12/2020  23/12/2020  25/11/2020
  

График должен выглядеть примерно так. Сравнение базового столбца с A, B, C, D и т.д.
Возможен ли такой тип графика в Python? Это называется диаграммой Cobra, показывает отклонение от базовой даты
введите описание изображения здесь

Я пробовал это, приближаясь, выглядит не так хорошо, как Excel.

 figure(num=None, figsize=(30, 16), dpi=80, facecolor='w', edgecolor='k')
baseline_date = cobra_df['Baseline Date']
plt.plot(Col_a, baseline_date, label="A")
plt.plot(Col_b, baseline_date, label="B")
plt.plot(Col_c, baseline_date, label="C")
plt.plot(Col_d, baseline_date, label="D")
plt.xlabel("Date")
plt.ylabel("Bdate")
plt.title("Cobra Chart")
plt.show()
  

введите описание изображения здесь

Ответ №1:

вы можете использовать matplotlib. пример кода:

 import matplotlib.pyplot as plt
plt.ylabel("activity date")
plt.xlabel("data date")
plt.plot(data_date_list1, activity_date_list1, color="blue")
plt.plot(data_date_list2, activity_date_list2, color="yellow")
plt.show()
  

это покажет почти именно то, что вы хотите.

Комментарии:

1. Спасибо навсегда. Есть идеи, как построить кривую вместо прямых линий?

2. Я понятия не имею.