Я начал с matplotlib / pandas.
Я создал сводную таблицу с пандами, а затем визуализировал ее с помощью matplotlib.
Вот скриншот :
Странно, что когда одни и те же данные ("client_pivot") встроены в два разных графика (столбец и круговая диаграмма), они ведут себя по-разному по отношению к легенде / ключам.
Хотя на панели перечислены метки ниже. Кажется, он не узнает их в легенде и не применяет другую цветовую схему. Как будто он видит их как одну партию данных ...
Вы хоть представляете, почему это так и как я могу это решить?
Ниже приведена выдержка из соответствующего кода (для краткости нерелевантный код был вырезан).
import pandas as pd
def reportMe(event):
csv_file = pd.read_csv("file.csv",
names = ['USER',
'CLIENT',
'TYPE',
'START',
'END',
'DURATION',
'NOTES'])
client_pivot = csv_file.pivot_table(index="CLIENT",
aggfunc="sum")
def pieMaker():
x_client = list(client_pivot.index)
y_duration = list(client_pivot["DURATION"])
fig = plt.figure(figsize=(12, 4))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.bar(x_client, y_duration) #bar
for label in ax1.xaxis.get_ticklabels():
label.set_rotation(17)
ax1.tick_params(labelsize=7)
ax1.legend(x_client,
loc="center left",
bbox_to_anchor=(0.9, 0, 0.5, 1),
fontsize=7)
ax1.set_ylabel('Time (s)')
ax2.pie(y_duration, #pie
shadow=True,
autopct='%1.1f%%',
textprops={'fontsize': 7,
'color':'w'})
ax2.legend(x_client,
loc="center left",
bbox_to_anchor=(0.9, 0, 0.5, 1),
fontsize=7)
ax2.set_aspect(1)
plt.show()
pieMaker()
edit: добавлен круговой код для сравнения