seaborn---样式控制/调色板
分类:
Seaborn
一、样式控制
1.set([context,style,palette,font,...])
一步设定美学参数。
2.axes_style([style,rc])
返回参数字典,用于绘图的美学风格。
3.set_style([style,rc])
设定地块的审美风格。
4.plotting_context([context,font_scale,rc])
返回参数dict以缩放图形的元素。
5.set_context([context,font_scale,rc])
设置绘图上下文参数。
6.set_color_codes([调色板])
更改matplotlib颜色缩写词的解释方式。
7.reset_defaults()
将所有RC参数恢复为默认设置。
8.reset_orig()
将所有RC参数恢复为原始设置(尊重自定义rc)。
二、调色板
调色板分为三类:
- Sequential:按顺序渐变的。 - Light colours for low data, dark for high data
- Diverging:彼此之间差异变化较大的。 - Light colours for mid-range data, low and high contrasting dark colours
- Qualitative:这个用于最大程度地显示不同类之间的差别。 - Colours designed to give maximum visual difference between classes
1.color_palette()
1 | seaborn.color_palette(palette = None , n_colors = None , desat = None ) |
- palette:None,string或sequence,可选,默认有6种主题:deep,muted, pastel, bright, dark, colorblind
- n_colors:颜色个数
- desat:每种颜色去饱和的比例
返回:
- palette:RGB元组列表
举例:
1 2 3 4 5 6 7 8 9 | import seaborn as sns sns.palplot(sns.color_palette()) sns.palplot(sns.color_palette( 'deep' , 8 )) sns.palplot(sns.color_palette( 'muted' , 8 )) sns.palplot(sns.color_palette( 'pastel' , 8 )) sns.palplot(sns.color_palette( 'bright' , 8 )) sns.palplot(sns.color_palette( 'dark' , 8 )) sns.palplot(sns.color_palette( 'colorblind' , 8 )) |
其他颜色风格:Accent,Blues,BrBG
1 2 3 4 5 6 7 8 9 10 | import seaborn as sns #风格内容:Accent,Blues,BrBG等等 #风格颜色转换(不是所有颜色都可以反转):Blues/Blues_r #分组颜色设置 -'Paried' sns.palplot(sns.color_palette( 'Paired' , 8 )) sns.palplot(sns.color_palette( 'Accent' , 8 )) sns.palplot(sns.color_palette( 'Blues' , 8 )) sns.palplot(sns.color_palette( 'Blues_r' , 8 )) sns.palplot(sns.color_palette( 'BrBG' , 8 )) |
2. set_palette():
3.husl_palette():设置亮度,饱和度
1 | seaborn.husl_palette(n_colors = 6 , h = 0.01 , s = 0.9 , l = 0.65 ) |
- n_colors:颜色个数
- h:第一个色调
- s:饱和度
- l:亮度
可用方法:
1 2 | husl_palette([n_colors, h, s, l]) hsl_palette([n_colors, h, l, s]) |
举例:
1 | sns.palplot(sns.hls_palette( 8 , l = . 8 , s = . 5 )) |
4.cubehelix_palette():按照线性增长计算,设置颜色
1 | seaborn.cubehelix_palette(n_colors = 6 , start = 0 , rot = 0.4 , gamma = 1.0 , hue = 0.8 , light = 0.85 , dark = 0.15 , reverse = False , as_cmap = False ) |
- n_colors:颜色个数
- start :值区间在0-3,开始颜色
- rot:颜色旋转角度
- gamma:颜色伽马值,越大颜色越暗
- dark,light:值区间0-1,颜色越深
- reverse:布尔值,默认为False,由浅到深
1 2 3 | sns.palplot(sns.cubehelix_palette( 8 , gamma = 2 )) sns.palplot(sns.cubehelix_palette( 8 , start = . 5 , rot = - . 75 )) sns.palplot(sns.cubehelix_palette( 8 , start = 2 , rot = 0 , dark = 0 , light = . 95 , reverse = True )) |
5.dark_palette()、light_palette():深色/浅色调色板
1 | seaborn.dark_palette(color,n_colors = 6 ,reverse = False ,as_cmap = False , input = 'rgb' ) |
参数:
- color:高值的颜色
- n_colors:颜色个数
- reverse:默认为False
- as_cmap:如果为True,则返回matplotlib colormap;为False,则返回list
- input:{'rgb','hls','husl','xkcd'}
返回:palette或cmap:seaborn调色板或matplotlib colormap,类似列表的颜色对象作为RGB元组,或者可以将连续值映射到颜色的颜色图对象,具体取决于as_cmap
参数的值 。
1 2 | dark_palette(color[, n_colors, reverse, ...]) #制作一个从黑暗到混合的顺序调色板 light_palette(color[, n_colors, reverse, ...]) |
举例:
1 2 3 4 5 6 7 | sns.palplot(sns.light_palette( 'green' )) #按照green做浅色调色盘 sns.palplot(sns.color_palette( 'Greens' )) #cmap为Greens风格 sns.palplot(sns.dark_palette( 'red' , reverse = False )) #按照blue做深色调色盘 #reverse ---> 转置颜色 sns.palplot(sns.light_palette( 'red' ,reverse = False )) |
6.diverging_palette创建分散颜色
1 | seaborn.diverging_palette(h_neg,h_pos, s = 75 , l = 50 , sep = 10 , n = 6 , center = 'light' , as_cmap = False ) |
参数:
- h_neg,h_pos:[0,359]
定位在负数与正数色调范围 - s:[0,100],可选
定位饱和度 - l:[0,100],可选
定位亮度 - n:int,可选
如果不返回cmap,将返回颜色数字 - center:{“light”,“dark”},可选
调色板中心是亮还是暗 - as_cmap:布尔,可选
如果为真,返回matplotlib colormap 对象;否则返回一个颜色列表
返回:
- palette or cmap:seaborn color palette 或者matplotlib colormap
颜色的类表对象(RGB元组),或者colormap能够映射连续的值到颜色,决定于 as_cmap 参数
举例:
1 | sns.palplot(sns.diverging_palette( 200 , 20 , l = 40 , n = 4 )) |
用分散颜色制作热力图
1 2 3 4 | plt.figure(figsize = ( 8 , 6 )) x = np.arange( 25 ).reshape( 5 , 5 ) cmap = sns.diverging_palette( 200 , 20 ,sep = 20 ,as_cmap = True ) sns.heatmap(x, cmap = cmap) #热力图 |
效果如下:
7.blend_palette()
8.xkcd_palette():命名颜色
xkcd包含了一套众包努力的针对随机RGB色的命名。产生了954个可以随时通过xdcd_rgb字典中调用的命名颜色
1 2 | colors = [ "windows blue" , "amber" , "greyish" , "faded green" , "dusty purple" ] sns.palplot(sns.xkcd_palette(colors)) |
1 2 3 | plt.plot([ 0 , 1 ], [ 0 , 1 ], sns.xkcd_rgb[ "pale red" ], lw = 1 ) plt.plot([ 0 , 1 ], [ 0 , 2 ], sns.xkcd_rgb[ "medium green" ], lw = 3 ) plt.plot([ 0 , 1 ], [ 0 , 3 ], sns.xkcd_rgb[ "denim blue" ], lw = 3 ) |
9.crayon_palette()
10.mpl_palette()
三、调色板小部件
1.choose_colorbrewer_palette(data_type [,as_cmap])
从ColorBrewer集中选择一个调色板
2.choose_cubehelix_palette([as_cmap])
启动交互式小部件以创建顺序cubehelix调色板
3.choose_light_palette([input,as_cmap])
启动交互式小部件以创建轻型顺序调色板
4.choose_dark_palette([input,as_cmap])
启动交互式小部件以创建暗序连接调色板
5.choose_diverging_palette([as_cmap])
启动交互式小部件以选择不同的调色板
四、实用功能
1.load_dataset(name [,cache,data_home])
从在线存储库加载数据集(需要互联网)
2.despine([fig,ax,top,right,left,bottom,...])
从图中移除顶部和右侧脊柱。
3.desaturate(颜色,道具)
将颜色的饱和度通道减少百分之几
4.saturate(颜色)
返回具有相同色调的完全饱和的颜色
5.set_hls_values(颜色[,h,l,s])
独立操作颜色的h,l或s通道
参考文献:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现