我是一名地质学硕士研究生,正在撰写关于南太平洋多座火山二氧化硫排放的论文。我对R有一些经验,但我的导师建议我使用Python(特别是JupyterLab)来生成图形和处理数据,所以我在编程方面还比较新手,主要是自学成才。我试图利用地震数据生成一些Seaborn散点图,但似乎无法在图例中显示地震震级的色彩条。下面是我使用的代码,我会尽力以清晰的方式格式化它。
希望这足够清楚,如果需要更多信息,请告诉我! 图片:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
from scipy import stats
import cartopy.crs as ccrs
import cartopy.io.img_tiles as cimgt
接下来是我正在处理的数据集,这些数据集涉及地震数据。
df = pd.read_csv('Vanuatu Earthquakes May18-May19.csv')
df = pd.read_csv('Vanuatu Earthquakes May17-May18.csv')
df = pd.read_csv('Vanuatu Earthquakes May19-Jul20.csv')
这里仅提供火山的位置作为空间参考。
dg = pd.read_csv('Volcano coordinates.csv')
这是我目前尝试处理的主要情节。到目前为止,我已经使用色相函数对地震的震级进行了分类,但我不喜欢它在图例中的显示方式,想将其转换为颜色条(或使用颜色条代替色相函数),但我无法弄清楚如何实现。另外,如果有其他函数可以给我所需的结果,那么我肯定可以使用不同于散点图的函数。黑色三角形是火山,暂时可以忽略。
plt.figure(figsize=(5.5,9))
sns.scatterplot(x='longitude', y='latitude', data=df,
marker='D', hue='mag', palette='colorblind', cmap='RdBu')
sns.scatterplot(x='longitude', y='latitude', data=dg,
marker='^', legend='brief', color='k', s=100)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., title='Magnitude (Mw)')
plt.xlabel('Longitude (degrees)')
plt.ylabel('Latitude (degrees)')
plt.title('Earthquake and Volcano Locations', size=15)
plt.show()
希望这足够清楚,如果需要更多信息,请告诉我! 图片:
colorbar
方法接受关键字label
来创建颜色条的标签。有关更多详细信息,请参见 此页面 的 Notes 部分。 - William Miller