小编Wil*_*ude的帖子

尝试将颜色条添加到 Seaborn 散点图

我是一名地质学硕士生,正在撰写我的论文,重点是南太平洋一些火山的二氧化硫输出。我对 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
Run Code Online (Sandbox Code Playgroud)

然后是我正在使用的数据集。这些是地震数据的集合。

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')
Run Code Online (Sandbox Code Playgroud)

和火山的位置,纯粹是为了空间参考。

dg = pd.read_csv('Volcano coordinates.csv')
Run Code Online (Sandbox Code Playgroud)

这是我目前尝试处理的主要情节。到目前为止,我已经能够使用色调函数对地震的震级进行分类,但我不喜欢它在图例中的外观,并希望将其转换为颜色条(或使用颜色条代替色调,或者/或) ,除了我不太清楚如何做到这一点。或者,如果有一个不同的函数可以给我我正在寻找的结果,我绝对愿意接受它而不是散点图。黑色三角形也是火山,所以现在可以忽略它们。

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, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib scatter-plot seaborn colormap

5
推荐指数
1
解决办法
4138
查看次数

降低seaborn线图上日期的x轴值密度?[更新]

对 Python 和一般编程来说还很陌生,所以请耐心等待。我有一个从 .csv 文件导入的数据集,我试图在 1 年内按日期(x 轴)绘制一列值(y 轴),但问题是日期太密集,我我一生都无法弄清楚如何将它们隔开或修改它们的定义方式。这是我正在使用的代码:

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 2018-2019.csv')
Run Code Online (Sandbox Code Playgroud)

这是线图代码:

plt.figure(figsize=(15, 7))
ax = sns.lineplot(x='date', y='mag', data=df).set_title("Earthquake magnitude May 2018-2019")

plt.xlabel('Date')
plt.ylabel('Magnitude (Mw)')
plt.savefig('EQ mag time')
Run Code Online (Sandbox Code Playgroud)

这目前给了我这个线图: 1

目前,我想通过每天的小勾号和每周开始的更大的勾号 + 标签来做到这一点。不必完全如此,但我主要是希望降低密度。我在这里查看了大量帖子,但它们似乎都不适用于我的情况,因此将不胜感激。

[更新]

按照下面 Konqui 的建议获取日期,我的代码现在如下所示:

time = pd.date_range(start = '01-05-2018',
                     end = '01-05-2019',
                     freq …
Run Code Online (Sandbox Code Playgroud)

python datetime date matplotlib seaborn

3
推荐指数
1
解决办法
3948
查看次数

标签 统计

matplotlib ×2

python ×2

seaborn ×2

colormap ×1

date ×1

datetime ×1

scatter-plot ×1