如何显示seaborn中的所有数字图例值?

问题描述

我正在尝试为以下数据框创建一个sns.lineplot()

overs:

    season  over    total_runs  total_overs avg_run
0   2008    1            703       745     0.943624
1   2008    2            923       741     1.245614
2   2008    3            826       727     1.136176
3   2008    4            912       725     1.257931
4   2008    5            1017      722     1.408587
235 2019    16           1099      721     1.524272
236 2019    17           1035      707     1.463932
237 2019    18           1124      695     1.617266
238 2019    19           1209      669     1.807175
239 2019    20           1189      552     2.153986
240 rows × 5 columns

sns.lineplot(x='avg_run',y='over',hue='season',data='overs')

我得到的输出如下:

Output

  • 我没有获得整个赛季的传奇人物(范围:2008-2019),并且无法区分当前的lineplots
  • 请注意:我的要求是在同一图中绘制所有线条

解决方法

import pandas as pd
import numpy as np
import seaborn as sns

# test data
sample_length = range(1,6+1)
rads = np.arange(0,2*np.pi,0.01)
data = np.array([np.sin(t*rads) for t in sample_length])
df = pd.DataFrame(data.T,index=pd.Series(rads.tolist(),name='radians'),columns=sample_length)

dfl = df.stack().reset_index().rename(columns={'level_1': 'frequency',0: 'amplitude'})

# plot
sns.lineplot(x='radians',y='amplitude',hue='frequency',data=dfl,legend='full',palette='winter')

enter image description here

自定义颜色图

  • 为绘图中的线数选择具有足够独特颜色的调色板。
  • husl调色板的其他选项可以在seaborn.husl_palette
  • 找到
  • colors也可以是手动选择的颜色的列表
    • colors = ['red','blue','green','black','purple','yellow']
# create color mapping based on all unique values of frequency
freqs = dfl.frequency.unique()
colors = sns.color_palette('husl',n_colors=len(freqs))  # get a number of colors
cmap = dict(zip(freqs,colors))  # zip freqs to colors and create a dict

sns.lineplot(x='radians',palette=cmap)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...