擅长:python、mysql、java
<p>一个想法是创建一个新的colormap,我们称之为<code>"cycliccoolwarm"</code>,它包含原始colormap和它的反向版本。然后使用这个新的颜色贴图和任何其他现有的颜色贴图一样简单。在</p>
<pre><code>import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import seaborn as sns
import numpy as np
import pandas as pd
df = pd.DataFrame({"Day" : np.repeat(np.array(list("1234567")),24*40 ),
"Hour" : np.tile(np.arange(0,24), 7*40).astype(int),
"Value" : np.random.rand(7*24*40)*180})
df['Hour'] = df['Hour'].apply('{:02d}:00'.format)
cmap_orig = plt.get_cmap("coolwarm")
colors = cmap_orig(np.concatenate((np.linspace(0,1,128), np.linspace(1,0,128))))
cmap = ListedColormap(colors)
plt.cm.register_cmap("cycliccoolwarm", cmap=cmap)
g = sns.catplot(x="Day", y="Value", hue="Hour", kind="swarm", palette="cycliccoolwarm", data=df)
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/j9cah.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/j9cah.png" alt="enter image description here"/></a></p>