Hen*_*son 5 python matplotlib dataframe seaborn colormap
我有一个 pandas 数据框,其中包含“组名”、“结果”和“温度”列。我绘制了一个 Seaborn 群图,其中 x='groupname' 和 y='result',它显示了分成组的结果数据。
我还想做的是使用颜色图根据标记的温度对标记进行着色,例如最冷的是蓝色,最热的是红色。
绘制图表非常简单:
import pandas as pd
import seaborn as sns
import matplotlib
import matplotlib.pyplot as plt
data = {'groupname': ['G0', 'G0', 'G0', 'G0', 'G1', 'G1', 'G1'], 'shot': [1, 2, 3, 4, 1, 2, 3], 'temperature': [20, 25, 35, 10, -20, -17, -6], 'result': [10.0, 10.1, 10.5, 15.0, 15.1, 13.5, 10.5]}
df = pd.DataFrame(data)
groupname shot temperature result
0 G0 1 20 10.0
1 G0 2 25 10.1
2 G0 3 35 10.5
3 G0 4 10 15.0
4 G1 1 -20 15.1
5 G1 2 -17 13.5
6 G1 3 -6 10.5
plt.figure()
sns.stripplot(data=results, x="groupname", y="result")
plt.show()
Run Code Online (Sandbox Code Playgroud)
但现在我被困在试图给点上色,我尝试了一些方法,例如:
sns.stripplot(data=results, x="groupname", y="result", cmap=matplotlib.cm.get_cmap('Spectral'))
Run Code Online (Sandbox Code Playgroud)
这似乎没有做任何事情。
还尝试过:
sns.stripplot(data=results, x="groupname", y="result", hue='temperature')
Run Code Online (Sandbox Code Playgroud)
它确实根据温度对点进行着色,但是颜色是随机的而不是映射的。
我觉得可能有一种非常简单的方法可以做到这一点,但还没有找到任何例子。
理想情况下寻找类似的东西:
sns.stripplot(data=results, x="groupname", y="result", colorscale='temperature')
Run Code Online (Sandbox Code Playgroud)
小智 3
您好,您正在寻找的关键字是“调色板”
下面应该可以工作:
sns.stripplot(data=results, x="groupname", y="result", hue='temperature',palette="vlag")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5215 次 |
最近记录: |