如何创建一个直方图,其中每个条形图都是相应容器的热图?

塞扎里·祖尔茨

我有一个数据框:

df.head()[['price', 'volumen']]

    price   volumen
48  45      3
49  48      1
50  100     2
51  45      1
52  56      1

它代表具有特定价格的物品数量。我基于该volume创建了一个直方图

在此处输入图片说明

我想添加有关每个垃圾箱价格分布的信息。我的想法是使用热图而不是单色列。例如,红色将显示较高的价格,而黄色将显示较低的价格。

这是一个示例图,用于说明总体思路:

在此处输入图片说明

约翰·C

以下示例使用seaborn的提示数据集。直方图是通过将total_billbin分组来创建的然后根据每个组中的提示将条形着色。

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib.patches as mpatches
import seaborn as sns

sns.set_theme(style='white')
tips = sns.load_dataset('tips')
tips['bin'] = pd.cut(tips['total_bill'], 10)  # histogram bin

grouped = tips.groupby('bin')

min_tip = tips['tip'].min()
max_tip = tips['tip'].max()
cmap = 'RdYlGn_r'
fig, ax = plt.subplots(figsize=(12, 4))
for bin, binned_df in grouped:
    bin_height = len(binned_df)
    binned_tips = np.sort(binned_df['tip']).reshape(-1, 1)
    ax.imshow(binned_tips, cmap=cmap, vmin=min_tip, vmax=max_tip, extent=[bin.left, bin.right, 0, bin_height],
              origin='lower', aspect='auto')
    ax.add_patch(mpatches.Rectangle((bin.left, 0), bin.length, bin_height, fc='none', ec='k', lw=1))

ax.autoscale()
ax.set_ylim(0, 1.05 * ax.get_ylim()[1])
ax.set_xlabel('total bill')
ax.set_ylabel('frequency')
plt.colorbar(ax.images[0], ax=ax, label='tip')
plt.tight_layout()
plt.show()

结果图

这是带状色图(cmap = plt.get_cmap('Spectral', 9))的外观

带状色图

这是使用'mpg'数据集的另一个示例,该图表具有有关汽车重量的直方图和通过每加仑英里数进行的着色。

mpg示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个单行条形图/热图,可以在其中绘制时间点的值?

ggplot2堆叠的条形图,其中每个值都是一个组/颜色

如何在Python中创建一个堆叠的条形图,其中每个变量的值之间存在间隙

如何绘制堆叠的条形图,其中每个条形图的顺序是基于一列的,而每个色阶的颜色是基于另一个的?

如何使用每个离散值的条形图创建条形图/直方图?

创建一个堆叠条形图,其中包含 2 个条形的 3 个轨迹

如何创建一个双轴条形图?

创建一个类别的条形图,每个类别仅填充一个

在 R 中创建一个带有 2 个条形图的条形图

Seaborn:如何为每个组创建一个带有两个变量的条形图?

如何在条形图的每个条形上方添加一个额外的数字

给定一个简单的pandas系列,创建其直方图(条形图)的简单方法是什么?

如何从三个独立的数据源创建一个条形图?

如何为 y 创建一个包含多列数据的 ggplot 条形图?

如何组合表格以在 ggplot 中创建一个条形图?

如何使用ggplot在一个图表中创建条形图和折线图

如何创建一个有很多条的charjs条形图?

如何在 Google Apps 脚本中创建一个包含时间列的条形图

如何使用多列和参数“ split”创建一个条形图

在一个条形图中创建多个条形图

是否可以创建一个条形图,其中 Y 是 Pandas 数据框中列的不同值的计数?

堆叠的条形图,其中每一列都是Altair中具有多列的条形图

Power BI - 条形图,表格中的每个逻辑列有一个条形

D3.js条形图不会追加,创建一个新图

创建一个特殊的径向条形图(赛道图)

如何在卡片小部件中显示孩子,其中一个孩子是 fl 条形图?

如何在 d3.js 中更改条形图的一个条形图?

根据一个布尔列创建一个“堆叠”条形图

将两个条形图组合成一个粘性页眉,其中顶部条形图更改高度