matplotlib violinplot换颜色

本文介绍了如何在Matplotlib中使用violinplot,并详细说明了如何修改默认颜色,通过循环设置不同部分的颜色,以达到个性化外观。
摘要由CSDN通过智能技术生成

本来用的是箱图,后来发现这个图更好看,就想要学习一下,官方有给教程,当然可以直接学习

https://matplotlib.org/stable/gallery/statistics/customized_violin.html

以上是官方给的,效果是这个样子的
在这里插入图片描述
这个从最基本的蓝色,变成了设置的一种颜色,但是这个颜色我不喜欢,想要换掉。

parts = ax2.violinplot(
        data, showmeans=False, showmedians=False,
        showextrema=False)

for pc in parts['bodies']:
    pc.set_facecolor('#D43F3A')
    pc.set_edgecolor('black')
    pc.set_alpha(1)

代码主要在这部分,可以看到,首先画出了上面的小提琴图,图中表示的是总共四个部分。所以下面这个循环也就是四个部分。
这里循环体中的第一行代码就是设置颜色的,看看对应的解释
在这里插入图片描述
虽然上面说可以给一个list,但是我将变量parts[‘bodies’]打印出来,发现长这个样子:
在这里插入图片描述

也就是需要一个一个设定,那就循环一下子就行了:


color=['blue','green','red','yellow']
for i, pc in enumerate(parts['bodies']):
    pc.set_facecolor(color[i])
    pc.set_edgecolor('black')
    pc.set_alpha(1)

出来的效果就是下图所示的样子
在这里插入图片描述
上面的颜色太深了,我们从这里选择自己喜欢的颜色
在这里插入图片描述

color = ['skyblue','limegreen','tomato','lightyellow']

在这里插入图片描述

当使用seaborn绘制小提琴图时,可以通过`sns.violinplot()`函数的参数来控制各个元素的样式和布局。下面是一些常用的参数: - `x`, `y`: 指定数据的横纵坐标,可以是DataFrame或Series中的列名,也可以是numpy数组。 - `hue`: 按照某个分类变量对数据进行分组,并用不同颜色的小提琴图表示不同组别的数据。 - `data`: 指定数据源,可以是DataFrame或Series。 - `split`: 是否将小提琴图分成两半,分别表示两个分类变量的数据。默认为False。 - `inner`: 小提琴图内部的样式,可以是“box”,“quartile”,“point”和“stick”中的一种。默认为“box”,表示绘制小提琴图的中位数和四分位数范围。 - `scale`: 小提琴图的宽度缩放因子,可以是“area”,“count”,“width”中的一种。默认为“area”,表示根据样本数量自适应调整小提琴图的宽度。 - `bw`: 控制内核密度估计的带宽大小。默认为"scott",可选值有"scott"、"silverman"和float类型的数值。 - `cut`: 控制小提琴图的截断方式,可以是numpy.percentile的参数或者是一个浮点数。默认为None,表示不截断。 - `color`: 小提琴图的颜色。 - `palette`: 用于绘制分类变量的小提琴图的颜色调色板。 - `linewidth`: 小提琴图边缘线宽度。 - `width`: 小提琴图的宽度。 - `outer`: 是否在小提琴图外部绘制观测值的分布。 - `inner_c`: 小提琴图内部的颜色。 - `ax`: 用于绘制小提琴图的matplotlib子图对象。 使用这些参数可以灵活控制小提琴图的样式和布局。例如,可以通过以下代码绘制一个带有两个分类变量和观测值散点图的小提琴图: ```python import seaborn as sns import matplotlib.pyplot as plt tips = sns.load_dataset("tips") sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, split=True, inner="stick") sns.swarmplot(x="day", y="total_bill", hue="sex", data=tips, dodge=True, color=".2") plt.show() ``` 输出结果如下所示: ![image.png](attachment:image.png) 在这个例子中,我们使用了`tips`数据集中的`day`和`total_bill`两个变量,按照`sex`变量进行了分组,并使用`split=True`将小提琴图分成了两半。另外,我们使用了`inner="stick"`将小提琴图的内部样式设置为“stick”,同时使用`sns.swarmplot()`函数绘制观测值散点图,并使用`dodge=True`将散点图按照`hue`变量进行了分组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

binqiang2wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>