这是一个简单的例子。 sns.relplot 的 hue= 参数控制每个项目的颜色。 hue 可以直接控制颜色(如本例所示)或通过间接控制,您需要一个调色板。我添加了legend=False 以防止显示图例,因为hue 这里直接显示颜色。有很多变化是可能的。
import seaborn as sns
import pandas as pd
d = {'OS_Packages':[0,1,2,4], 'Vulnerabilities': [6,7,3,7],
'text':['point1','point2','point3','point4'],
'colors': ['red', 'green', 'blue', 'yellow']}
df = pd.DataFrame(d)
p1 = sns.relplot(x='OS_Packages', y='Vulnerabilities',data=df, hue='colors', legend=False )
ax = p1.axes[0,0]
for idx,row in df.iterrows():
x = row[0]
y = row[1]
text = row[2]
ax.text(x+.05,y,text, horizontalalignment='left')
from matplotlib import pyplot as plt
plt.show()
这是一个示例,其中包含一种类型的调色板和一个图例。
import seaborn as sns
import pandas as pd
d = {'OS_Packages':[0,1,2,4], 'Vulnerabilities': [6,7,3,7],
'text':['point1','point2','point3','point4'],
'risk': ['high risk', 'medium risk', 'low risk', 'low risk']}
colors = {'high risk' : '#0000AA', 'medium risk' : '#7777DD', 'low risk' : '#9999FF'}
df = pd.DataFrame(d)
p1 = sns.relplot(x='OS_Packages', y='Vulnerabilities',data=df, hue='risk', palette=colors)
ax = p1.axes[0,0]
for idx,row in df.iterrows():
x = row[0]
y = row[1]
text = row[2]
ax.text(x+.05,y,text, horizontalalignment='left')
from matplotlib import pyplot as plt
plt.show()
结果: