Я строю сейсмологические данные и создаю фигуру с 16 участками срезов различной глубины. Каждый подзаговор отображает широту / долготу эпицентра, а цвет масштабируется до его величины. Я пытаюсь сделать две вещи:
Настройте масштаб всех графиков так, чтобы они равнялись x и y min и max для выбранной области. Это позволит легко сравнивать графики. (таким образом, все графики будут варьироваться от xmin до xmax и т. д. c)
настроить цвета амплитуды, чтобы они также представляли масштаб (ie цвета представляют все доступные точки, а не только точки на этом конкретном c подговоре)
Я видел, как это было выполнено несколькими способами, но я пытаюсь применить их к l oop в моем коде. Данные, которые я использую, находятся здесь: Данные .
Я разместил свой код и как выглядит текущий вывод ниже.
import matplotlib.pyplot as plt
import pandas as pd
eq_df = pd.read_csv(eq_csv)
eq_data = eq_df[['LON', 'LAT', 'DEPTH', 'MAG']]
nbound = max(eq_data.LAT)
sbound = min(eq_data.LAT)
ebound = max(eq_data.LON)
wbound = min(eq_data.LON)
xlimit = (wbound, ebound)
ylimit = (sbound, nbound)
magmin = min(eq_data.MAG)
magmax = max(eq_data.MAG)
for n in list(range(1,17)):
km = eq_data[(eq_data.DEPTH > n - 1) & (eq_data.DEPTH <= n)]
plt.subplot(4, 4, n)
plt.scatter(km["LON"], km['LAT'], s = 10, c = km['MAG'], vmin = magmin, vmax = magmax) #added vmin/vmax to scale my magnitude data
plt.ylim(sbound, nbound) # set y limits of plot
plt.xlim(wbound, ebound) # set x limits of plot
plt.tick_params(axis='both', which='major', labelsize= 6)
plt.subplots_adjust(hspace = 1)
plt.gca().set_title('Depth = ' + str(n - 1) +'km to ' + str(n) + 'km', size = 8) #set title of subplots
plt.suptitle('Magnitude of Events at Different Depth Slices, 1950 to Today')
plt.show()
ETA: новый код для решения моей проблемы