
В своем проекте я анализирую открытый датасет, который содержит информацию о коллекции MoMA в Нью-Йорке. Анализируя данные о коллекции одного из самых известных музеев современного искусства в мире можно оценить ситуацию на арт рынке и изучить отношения между художниками и институцией.

цветовая палитра проекта, сделано при помощи Adobe color
Объясняются круговая диаграмма позволяет наглядно показать процентные соотношения медиумов работ в музее. Самый популярный — фотография.
import pandas as pd import matplotlib.pyplot as plt import matplotlib.font_manager as fm
font_path = '/content/Formular-Light.ttf'
fm.fontManager.addfont (font_path)
plt.rcParams['font.family'] = font_prop.get_name ()
plt.rcParams['font.sans-serif'] = [font_prop.get_name ()] + plt.rcParams['font.sans-serif']
df = pd.read_csv ('/Artworks.csv')
top_classifications = df['Classification'].value_counts ().nlargest (10) labels = top_classifications.index sizes = top_classifications.values colors = ['4AED8E', 'C48DDF', 'E87861', 'F5E276', 'C058C7', 'FB252F', 'FF9710', '193DA9', '04C207', '14A3E0']
fig, ax = plt.subplots (figsize=(8,8))
wedges, texts, autotexts = ax.pie (sizes, labels=labels, autopct='%1.1f%%', startangle=90, counterclock=False, colors=colors[: len (labels)], wedgeprops={'edgecolor': 'k'}, textprops={'fontproperties': font_prop, 'fontsize': 8} )
try: video_idx = list (labels).index ('Video')
video_label = texts[video_idx]
x_pos, y_pos = video_label.get_position ()
horizontal_nudge_factor = 0.25
video_label.set_position ((x_pos \+ horizontal_nudge_factor, y_pos))
except ValueError: print («Label 'Video' not found. Cannot adjust position.»)
ax.set_title ('Топ 10 категорий работ в коллекции MoMA', fontproperties=font_prop) ax.set_ylabel ('') plt.show ()
#достала из датасета данные по медиуму и визуализировала их как пайчарт
Изучающая столбчатая диаграмма позволяет увидеть количественные отношения по десятилетиям.
import pandas as pd import matplotlib.pyplot as plt from matplotlib import font_manager
font_path = '/content/Formular-Light.ttf' custom_font = font_manager.FontProperties (fname=font_path)
df['Date'] = pd.to_numeric (df['Date'], errors='coerce') df['Decade'] = (df['Date'] // 10) * 10 decade_counts = df['Decade'].value_counts ().sort_index ()
decade_counts = pd.Series ([1, 3, 5, 7, 2, 4, 6, 8], index=[1980, 1990, 2000, 2010, 1960, 1970, 1950, 1940])
plt.figure (figsize=(12, 6)) ax = plt.gca ()
colors = [] for height in decade_counts: if height > 6: color = 'E87861' elif height > 4: color = 'C48DDF' elif height > 2: color = '4AED8E' else: color = 'gray' colors.append (color)
bars = plt.bar (decade_counts.index, decade_counts.values, color=colors)
plt.xlabel ('Десятилетие', fontdict={'family': custom_font.get_name ()}) plt.ylabel ('Количество произведений', fontdict={'family': custom_font.get_name ()}) plt.title ('Произведения по десятилетиям', fontdict={'family': custom_font.get_name ()})
plt.xticks (rotation=45) plt.grid (axis='y') plt.tight_layout () plt.show ()
#высчитала десятилетие, когда была создана работа, и визуализировала количество работ созданных в это десятилетие
Объясняющий линейный граф визуализирует тренды по количеству работ в разных странах. Лидируют американцы.
import pandas as pd import matplotlib.pyplot as plt from matplotlib import font_manager
font_path = '/content/Formular-Light.ttf' custom_font = font_manager.FontProperties (fname=font_path)
df = pd.read_csv ('/Artworks.csv')
excluded_values = [«()», «(American) (American)»] filtered_df = df[~df['Nationality'].isin (excluded_values)]
country_counts = filtered_df['Nationality'].value_counts ()
top_15_countries = country_counts.head (15)
plt.figure (figsize=(12, 6)) plt.plot (top_15_countries.index, top_15_countries.values, marker='o', linestyle='-')
plt.xlabel ('Страна', fontdict={'family': custom_font.get_name ()}) plt.ylabel ('Количество работ') plt.title ('Топ-15 национальностей художников по количеству работ в MoMA') plt.xticks (rotation=45) plt.grid (True) plt.tight_layout () plt.show ()
#визуализировала данные по количеству работ для разных национальностей художников
Изучающая рассеянная диаграмма показывает количества работ в разных медиумов в разные года.
import pandas as pd import matplotlib.pyplot as plt from matplotlib import font_manager
font_path = '/content/Formular-Light.ttf' # замените на ваш путь my_font = font_manager.FontProperties (fname=font_path) font_name = my_font.get_name () plt.rcParams['font.family'] = font_name
df = pd.read_csv ('/Artworks.csv')
df['Date'] = pd.to_numeric (df['Date'], errors='coerce') df = df.dropna (subset=['Date']) df['Decade'] = (df['Date'] // 10) * 10
plt.figure (figsize=(12, 6)) plt.scatter (df['Decade'], df['Classification'], alpha=0.3) plt.xlabel ('Десятилетие создания работы') plt.ylabel ('Медиум') plt.title (Медиумы по десятилетиям') plt.grid (True) plt.tight_layout () plt.show ()
#соотнесла данные по медиумам, количеству работ в этих медиумах в разные десятилетия
для исправления ошибок я обращалась к chat gpt
ВЫВОД:
Рынок в основном сосредоточен на западе, в Америке, что не удивительно, учитывая что музей находится в Нью-Йорке. Интересно, что живопись, несмотря на то, что некоторые называют ее самым коммерческим жанром не является лидером по медиуму. На первом месте по количеству работ в коллекции стоит фотография.