47 lines
2.0 KiB
Python
47 lines
2.0 KiB
Python
|
import os
|
|||
|
import numpy as np
|
|||
|
import pandas as pd
|
|||
|
import matplotlib
|
|||
|
matplotlib.use('Agg')
|
|||
|
import matplotlib.pyplot as plt
|
|||
|
|
|||
|
def createCusGraphics(df: pd.DataFrame, newDf: pd.DataFrame):
|
|||
|
|
|||
|
# для сохранения диаграммы в конкретной папке
|
|||
|
script_dir = os.path.dirname(__file__)
|
|||
|
results_dir = os.path.join(script_dir, '../static/')
|
|||
|
|
|||
|
if not os.path.isdir(results_dir):
|
|||
|
os.makedirs(results_dir)
|
|||
|
df.rename(columns={'small': 'small_1', 'average': 'average_1', 'big': 'big_1'}, inplace=True)
|
|||
|
newDf.rename(columns={'small': 'small_2', 'average': 'average_2', 'big': 'big_2'}, inplace=True)
|
|||
|
|
|||
|
# Объединяем две группы в один DataFrame
|
|||
|
merged_df = pd.concat([df, newDf], axis=1, ignore_index=False)
|
|||
|
# Создаем массив с индексами для каждой компании
|
|||
|
index = np.arange(len(merged_df))
|
|||
|
print(merged_df)
|
|||
|
# Задаем ширину каждого столбца
|
|||
|
bar_width = 0.2
|
|||
|
# Построение столбчатой гистограммы с увеличенным расстоянием между столбцами
|
|||
|
plt.bar(index, merged_df['small_1'], bar_width, label='Min 1', color='b')
|
|||
|
plt.bar(index + bar_width, merged_df['average_1'], bar_width, label='Mean 1', color='g')
|
|||
|
plt.bar(index + 2 * bar_width, merged_df['big_1'], bar_width, label='Max 1', color='r')
|
|||
|
plt.bar(index + 3 * bar_width, merged_df['small_2'], bar_width, label='Min 2', color='c')
|
|||
|
plt.bar(index + 4 * bar_width, merged_df['average_2'], bar_width, label='Mean 2', color='m')
|
|||
|
plt.bar(index + 5 * bar_width, merged_df['big_2'], bar_width, label='Max 2', color='y')
|
|||
|
|
|||
|
# Устанавливаем подписи на оси x
|
|||
|
plt.xlabel('Company')
|
|||
|
plt.ylabel('Valuation')
|
|||
|
plt.title('Company Valuation Comparison')
|
|||
|
plt.xticks(index + 2.5 * bar_width, merged_df.index)
|
|||
|
|
|||
|
# Добавляем легенду
|
|||
|
plt.legend()
|
|||
|
|
|||
|
plt.savefig(results_dir + 'CustomJPG' + str(0) + '.jpg')
|
|||
|
|
|||
|
plt.close()
|
|||
|
|
|||
|
return True
|