Ric*_*ard 5 python gis plot matplotlib pandas
我正在绘制地震数据并正在创建一个图形,其中包含 16 个不同深度切片的子图。每个子图显示震中的纬度/经度,颜色按其大小缩放。我正在尝试做两件事:
调整所有绘图的比例以等于所选区域的 x 和 y 最小值和最大值。这将允许在图之间轻松比较。(所以所有图的范围从 xmin 到 xmax 等)
调整幅度颜色,使它们也代表比例(即颜色代表所有可用点,而不仅仅是该特定子图中的点)
我已经看到这通过多种方式完成,但我正在努力将它们应用于我的代码中的循环。我使用的数据在这里:Data。
我在下面发布了我的代码和当前输出的样子。
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()
Run Code Online (Sandbox Code Playgroud)
ETA:解决我的问题的新代码
感谢上面的一些帮助和一些扩展的谷歌搜索,终于得到了它。
我已经更新了上面的代码,并添加了指示代码添加位置的注释。
为了调整我使用的绘图轴的限制:
plt.ylim(sbound, nbound)
plt.xlim(wbound, ebound)
Run Code Online (Sandbox Code Playgroud)
为了在所有图中缩放我的幅度数据,我将 vmin、vmax 添加到以下行:
plt.scatter(km["LON"], km['LAT'], s = 10, c = km['MAG'], vmin = magmin, vmax = magmax)
Run Code Online (Sandbox Code Playgroud)