所以,当我编译我的python代码(matplot)时遇到错误:
ValueError:color kwarg每个数据集必须有一种颜色
生成此错误的代码:
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import pickle as pkl
from __future__ import division
sns.set(style="darkgrid")
sns.distplot(featureSet[featureSet['label']=='0']['len of url'],color='green',label='Benign URLs')
sns.distplot(featureSet[featureSet['label']=='1']['len of url'],color='red',label='Phishing URLs')
sns.plt.title('Url Length Distribution')
plt.legend(loc='upper right')
plt.xlabel('Length of URL')
sns.plt.show()
感谢您的帮助:)。
答案 0 :(得分:2)
不要使用sns.plt
。而是import matplotlib.pyplot as plt
并直接使用它。
Appart代码运行正常。我创建了以下最小的可运行示例
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
df = pd.DataFrame({"label" : np.random.randint(2, size=100).astype(str),
"data" : np.random.rayleigh(size=100)})
sns.set(style="darkgrid")
sns.distplot(df[df['label']=='0']['data'],color='green',label='Benign URLs')
sns.distplot(df[df['label']=='1']['data'],color='red',label='Phishing URLs')
plt.title('Url Length Distribution')
plt.legend(loc='upper right')
plt.xlabel('Length of URL')
plt.show()
产生以下输出
如果它不适合您,请考虑升级matplotlib和seaborn版本。以上是用matplotlib 2.2.2和seaborn 8.1制作的。
答案 1 :(得分:-2)
只需删除颜色属性即可。
删除color='green'
和color = 'red'
,一切正常。