我是一名地质学硕士研究生,正在写论文,主要研究南太平洋许多火山的二氧化硫排放量。我对R有一点经验,但我的导师推荐了python(JupyterLab)生成图形和数据操作,所以我对编程相当陌生,基本上是边走边自学。我试图用地震数据生成一些散点图,但我似乎不能得到一个颜色条显示在图例中的地震震级。我正在使用的代码如下,我会尽我所能以一种清晰的方式格式化它。
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()
希望这是足够清楚,但让我知道,如果需要更多的信息!
1条答案
按热度按时间lrl1mhuk1#
在this answer中使用的关于海运条形图的相同方法也可以应用于散点图。使用您的代码,看起来像这样:
请参阅this question及其答案,以取得有关操作颜色列的标签和刻度的信息。
有关使用
tips
数据集的完整示例: