如何在同一图形的子图中使用不同的调色板进行绘制?在下面的示例中,图的生成被延迟。因此,仅最后一个调色板用于生成图。尽管我需要使用不同的调色板生成的子图。
x = np.arange(10)
pal = sns.color_palette("rainbow", 12)
sns.set_palette(pal)
subplot(2, 1, 1)
for i in range(4):
plot(x, i*np.sin(x))
subplot(2, 1, 2)
pal = sns.color_palette("Set1", 12)
sns.set_palette(pal)
for i in range(4):
plot(x, i*np.cos(x))
tight_layout()
答案 0 :(得分:1)
在创建子图之前,您需要先设置调色板 。这是因为颜色循环是轴的属性。轴将在创建时从rcParams
中获取当前属性循环程序。因此,set_palette
(会更改属性循环程序)需要预先调用。
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
x = np.arange(10)
# First subplot
pal1 = sns.color_palette("rainbow", 12)
sns.set_palette(pal1)
plt.subplot(2, 1, 1)
for i in range(4):
plt.plot(x, i*np.sin(x))
# Second subplot
pal2 = sns.color_palette("Set1", 12)
sns.set_palette(pal2)
plt.subplot(2, 1, 2)
for i in range(4):
plt.plot(x, i*np.cos(x))
plt.tight_layout()
plt.show()