sns.heatmap中cmap的颜色表
时间: 2024-06-07 15:12:28 浏览: 15
在 `sns.heatmap()` 中,`cmap` 参数用于指定颜色表(color map)。以下是一些常用的颜色表选项:
1. `"viridis"`:一种从浅到深的颜色渐变,适合用于表示数值变化。
2. `"coolwarm"`:冷暖色调的平衡组合,适合用于表示正负变化。
3. `"RdBu"`:红蓝色调的平衡组合,也适合表示正负变化。
4. `"YlGnBu"`:黄绿蓝色调的渐变,用于表示温度或数据的相对大小。
5. `"hot"`:热色调,从黑到红的渐变,用于表示高温或强度。
除了上述常用的颜色表,Seaborn 还提供了其他许多选项,你可以通过查看 Seaborn 文档中的 `cubehelix_palette()` 函数来获取更多可用的颜色表选项。
相关问题
怎么在plt的子图中画sns.heatmap
你可以使用Seaborn中的`heatmap`函数在matplotlib的子图中绘制热力图。下面是一个示例代码:
```python
import matplotlib.pyplot as plt
import seaborn as sns
# 生成数据
data = sns.load_dataset("flights")
flights = data.pivot("month", "year", "passengers")
# 创建一个figure对象和一个包含2行1列的子图grid
fig, ax = plt.subplots(nrows=2, ncols=1, figsize=(10, 8))
# 在第一个子图中绘制热力图
sns.heatmap(flights, ax=ax[0])
# 在第二个子图中绘制热力图,设置cmap为"YlGnBu"颜色映射
sns.heatmap(flights, ax=ax[1], cmap="YlGnBu")
# 设置子图的标题
ax[0].set_title("Default Colormap")
ax[1].set_title("Custom Colormap")
# 显示图形
plt.show()
```
这个示例代码中,我们首先使用Seaborn中的`load_dataset`函数生成了一个包含航班乘客数的数据集,然后使用`pivot`函数将数据转换为透视表格式。接着,我们创建了一个包含2个子图的网格,并在其中分别绘制了热力图。在第二个子图中,我们通过设置`cmap`参数为"YlGnBu"来自定义了颜色映射。最后,我们设置了子图的标题并显示了图形。
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 读取数据 df = pd.read_excel("200马力及以上四轮驱动拖拉机.xlsx") # 按照 FactoryName 和 JiJXH 进行分组,计算售价最高值和最低值 grouped = df.groupby(["FactoryName","JiJXH"])['avg_sale'].agg(['min', 'max']).reset_index() grouped = grouped.rename(columns={'min': 'min_sale', 'max': 'max_sale'}) # 将售价最高值和最低值合并到原表中 df = pd.merge(df, grouped, on=["FactoryName","JiJXH"]) # 绘制热力图,并设置颜色取值范围 sns.set_context(font_scale=1.5) plt.figure(figsize=(12,30)) sns.heatmap(df.pivot_table(index=["FactoryName","JiJXH"], columns=["shi"], values="avg_sale"), cmap='YlGnBu', annot=True, fmt='.2f', cbar_kws={'label': '单台售价','shrink':0.8,'aspect':40}, vmin=grouped['min_sale'].min(), vmax=grouped['max_sale'].max()) plt.title('''200马力及以上四轮驱动拖拉机 各生产企业各型号在不同市单台平均售价''') plt.show()如何设置标签字体为仿宋
你可以使用 `sns.set()` 函数来设置 seaborn 的绘图风格,其中包括字体类型、字体大小、线条宽度等属性。具体来说,你需要使用 `font` 参数来设置字体类型,例如:
```python
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
sns.set(font='仿宋')
# 读取数据
df = pd.read_excel("200马力及以上四轮驱动拖拉机.xlsx")
# 按照 FactoryName 和 JiJXH 进行分组,计算售价最高值和最低值
grouped = df.groupby(["FactoryName","JiJXH"])['avg_sale'].agg(['min', 'max']).reset_index()
grouped = grouped.rename(columns={'min': 'min_sale', 'max': 'max_sale'})
# 将售价最高值和最低值合并到原表中
df = pd.merge(df, grouped, on=["FactoryName","JiJXH"])
# 绘制热力图,并设置颜色取值范围
sns.set_context(font_scale=1.5)
plt.figure(figsize=(12,30))
sns.heatmap(df.pivot_table(index=["FactoryName","JiJXH"], columns=["shi"], values="avg_sale"),
cmap='YlGnBu', annot=True, fmt='.2f',
cbar_kws={'label': '单台售价','shrink':0.8,'aspect':40},
vmin=grouped['min_sale'].min(), vmax=grouped['max_sale'].max())
plt.title('''200马力及以上四轮驱动拖拉机 各生产企业各型号在不同市单台平均售价''')
plt.show()
```
在上面的例子中,我们使用了 `sns.set()` 函数将字体类型设置为仿宋。你也可以根据需要设置其他属性来调整绘图风格。