matplotlib 添加另一个“色调”类别,但与标记,而不是颜色

ntjbwcob  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(80)

我正在尝试在海上群集图中添加另一个维度,以便用唯一的标记标记来标记额外的维度。我已经在dataframe中的一个列中设置了色调,但我不知道如何添加另一种区分某些信息的方法。图中的每个数据点都有一个相关联的“热量数”,我试图为每个热量数分配一个唯一的标记。
我遇到了这个答案(swarmplot with hue affecting marker beyond color),它与我正在尝试的接近,但我认为我的情况更复杂,因为我试图基于不同的类别分配标记。
以下是我目前为止的代码(数据值不是真实的,但给出了一个示例):

fig, a = plt.subplots(dpi = 150)

c_data = [10,20,30,35, 8]
time_data = [100, 1000, 10000, 4000, 16000]
gs_data = [1.5, 2, 3, 4, 5]
heat_data = [2412, 1421, 1445, 6366, 1131]

df['charpy'] = c_data
df['time'] = time_data 
df['Grain Size'] = gs_data
df['Heat'] = heat_data
sns.swarmplot(data = df, x = 'time', y = 'charpy', hue = 'Grain Size', ax = a, size = 8)

在这一点上非常简单,因为我真的不确定我的下一步是什么,我查过的其他例子不能真正适用于我的情况。任何帮助都很感激。

ih99xse1

ih99xse11#

这是目前不可能的(没有痛苦)与swarmplot。但是,如果您使用scatterplot,则可以使用style参数添加第二个“类别”。

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
ax = sns.scatterplot(data=tips, x='day', y='total_bill', hue='sex', style='smoker')
plt.show()

输出:

Seaborn提供了seaborn.categorical.Beeswarm类来计算点的偏移。也许你可以问作者如何从散点图中使用它。

相关问题