Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何改变熊猫图中小提琴图的边框颜色?_Python_Pandas_Seaborn_Violin Plot - Fatal编程技术网

Python 如何改变熊猫图中小提琴图的边框颜色?

Python 如何改变熊猫图中小提琴图的边框颜色?,python,pandas,seaborn,violin-plot,Python,Pandas,Seaborn,Violin Plot,我想更改violinplots的lineborder的颜色。 我可以将行。线宽设置为0,但我希望显示边框,而不是隐藏边框。如何更改边框的颜色 sns.set_context("paper", rc={"lines.linewidth": 0.8}) 我的代码如下: import seaborn as sns import matplotlib.pyplot as plt from matplotlib import style import pandas as pd import nump

我想更改violinplots的lineborder的颜色。 我可以将
行。线宽
设置为
0
,但我希望显示边框,而不是隐藏边框。如何更改边框的颜色

sns.set_context("paper", rc={"lines.linewidth": 0.8})

我的代码如下:

import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import style 
import pandas as pd
import numpy as np 

datasets = pd.read_csv("merged.csv", index_col=0);

df = datasets   

df.protocol = df.protocol.astype(str) 
f, ax = plt.subplots(figsize=(18, 6))

sns.violinplot(x="time", 
               y="values", 
               hue="protocol",
               data=df,
               bw=.5,
               scale="count" 
              )


sns.despine(left=True)

f.suptitle('Title', fontsize=22, fontweight='bold')
ax.set_xlabel("Time",size = 16,alpha=0.7)
ax.set_ylabel("Values",size = 16,alpha=0.7)   
ax.set_xticklabels(df.qber, rotation=90) 
ax.grid(True)
plt.legend(loc='upper right')
plt.grid(linestyle='--', alpha=0.7)

fig = ax.get_figure()
fig.savefig('time_v.pdf', bbox_inches='tight')

谢谢大家!

这应该非常接近您要查找的内容:

import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import style 
import pandas as pd
import numpy as np 

def patch_violinplot(palette, n):
    from matplotlib.collections import PolyCollection
    ax = plt.gca()
    violins = [art for art in ax.get_children() if isinstance(art, PolyCollection)]
    colors = sns.color_palette(palette, n_colors=n) * (len(violins)//n)
    for i in range(len(violins)):
        violins[i].set_edgecolor(colors[i])

datasets = pd.read_csv("merged.csv", index_col=0);

df = datasets   

df.protocol = df.protocol.astype(str)
num_cols = df['protocol'].nunique() 
f, ax = plt.subplots(figsize=(18, 6))

sns.violinplot(x="time", 
               y="values", 
               hue="protocol",
               data=df,
               bw=.5,
               scale="count",
               palette="deep"
              )
patch_violinplot("deep", num_cols)

sns.despine(left=True)

f.suptitle('Title', fontsize=22, fontweight='bold')
ax.set_xlabel("Time",size = 16,alpha=0.7)
ax.set_ylabel("Values",size = 16,alpha=0.7)   
ax.set_xticklabels(df.qber, rotation=90) 
ax.grid(True)
plt.legend(loc='upper right')
plt.grid(linestyle='--', alpha=0.7)

fig = ax.get_figure()
fig.savefig('time_v.pdf', bbox_inches='tight')
patch\u小提琴
功能来自。

请参阅