标签: heatmap

如何创建带有边缘直方图的热图(类似于联合图)?

我想绘制二维标量数据,我通常会使用matplotlib.pyplot.imshow或来绘制sns.heatmap。考虑这个例子:

data = [[10, 20, 30], [50, 50, 100], [80, 60, 10]]
fix, ax = plt.subplots()
ax.imshow(data, cmap=plt.cm.YlGn)
Run Code Online (Sandbox Code Playgroud)

3x3 imshow 绘图

现在我还想在顶部和右侧有一维条形图,显示每列/行中的值的总和 - 就像那样sns.jointplot。然而,sns.jointplot似乎只适用于分类数据,生成直方图(带有kind='hist')、散点图等 - 如果我想直接指定单元格的值,我不知道如何使用它。对于seaborn 来说这样的事情可能吗?

我的图中的轴y将是天(一个月内),x轴将是小时。我的数据如下所示:

包含小时、日期和值的 DataFrame

该字段Cost Difference应构成图中相应字段的阴影。

matplotlib heatmap seaborn

1
推荐指数
1
解决办法
3583
查看次数

在错误的 x 轴上的热图绘制线顶部的辅助 y 轴上创建线图

我有两张表,一张是从热图生成的,一张是需要在辅助 y 轴上绘制折线图的。创建热图没有问题:

green = sns.light_palette("seagreen", reverse=True, as_cmap=True)
green.set_over('tomato')
sns.set(rc={'figure.figsize': (20.7, 10.27)})
sns.set(font_scale=2)
ax=sns.heatmap(df, square=True, linewidths=.5, annot=False, fmt='.3f',
               cmap=green, vmin=0, vmax=0.05)
    
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我尝试在热图顶部绘制线条时,问题就开始了。该线应具有相同的 x 轴值,并且这些值应位于辅助 y 轴中。df 行如下所示:

>>>day     value
0  14       315.7
1  15       312.3
2  16       305.9
3  17       115.2
4  18       163.2
5  19       305.78
...
Run Code Online (Sandbox Code Playgroud)

我尝试将其绘制在顶部,如下所述

green = sns.light_palette("seagreen", reverse=True, as_cmap=True)
green.set_over('tomato')
sns.set(rc={'figure.figsize': (20.7, 10.27)})
sns.set(font_scale=2)
ax=sns.heatmap(df, square=True, linewidths=.5, annot=False, fmt='.3f',
              cmap=green, vmin=0, vmax=0.05)

ax2=plt.twinx()
ax2.plot(df_line['day'], df_line['value'],color="blue")
line = ax2.lines[0]
line.set_xdata(line.get_xdata() + 0.5)


plt.show()
Run Code Online (Sandbox Code Playgroud)

但后来我把线“移”到了左侧,我在 …

python matplotlib heatmap line-plot seaborn

1
推荐指数
1
解决办法
1455
查看次数

Seaborn 热图错误:“AttributeError:‘NoneType’对象没有属性‘reshape’”

我正在做一个 NLP 项目,研究 10 位不同经典摇滚艺术家各自作品之间的余弦相似度。我已经完成了相似性查询并创建了一个名为的数据框,similarities如下所示。

在此输入图像描述

similarities通过首先构建一个空数据框来构建数据框,其中以艺术家姓名作为索引和列名称,然后运行以下代码来运行相似性查询并使用分数填充数据框:

        
    artist_words = data['lyrics'][artist]
    
    artist_vec_bow = dictionary.doc2bow(artist_words.lower().split())
    artist_vec_lsi = lsi[artist_vec_bow]
    
    artist_sims = index[artist_vec_lsi]
    
    artist_sims_sorted = sorted(enumerate(artist_sims), key=lambda item: -item[1])
    
    for position, score in artist_sims_sorted:
    
        similarities.at[artist, musicians[position][1]] = score 
Run Code Online (Sandbox Code Playgroud)

data是一个数据框,以艺术家姓名作为索引,并有一列名为 ,lyrics其中歌词作为一个长字符串输入。

我想创建一个 Seaborn 热图来可视化 DataFrame 中指示的相关性。

但是当我运行以下代码时:

sns.heatmap(similarities)

我收到一条很长的错误消息,其结尾为:

AttributeError: 'NoneType' object has no attribute 'reshape'

谁能帮我弄清楚如何形象化这一点?

similarities.info()返回以下内容:

Index: 11 entries, bob_dylan to willie_nelson
Data columns (total 11 columns):
 #   Column          Non-Null Count  Dtype 
---  ------          --------------  ----- …
Run Code Online (Sandbox Code Playgroud)

python matplotlib heatmap correlation seaborn

1
推荐指数
1
解决办法
3949
查看次数

ggplot 中用圆圈代替图块的热图

如果我有一个整数向量(或者如果我将它放入矩阵中),是否可以使用 ggplot 或其他包来绘制热图,这些包可以将每个点作为圆形而不是平铺?

> counts
  [1] 1949 1690 1935 2480 1441 1141 2079 1587  517 1028  535 2180 1692 3916 1784
 [16] 3028 1911 1329 1759 1478 1080 2835 2187 3230 2932 3527 1538 1489 1493 1170
 [31] 3311 4982 4842 4899 1339 3594 2562 1821 1077 1072 4312 3395 3522 1037 3270
 [46] 4813 1686 1955 3290 1288 2592 3717  213 2840 3938 3882 1807 1582 2519 2600
 [61] 4093 2318 3028 3074 1833 3453 2539 2665 2491 2696 …
Run Code Online (Sandbox Code Playgroud)

r heatmap ggplot2

1
推荐指数
1
解决办法
742
查看次数

在 R 中的热图行上添加矩形

我正在尝试在函数调用graphics::rect的一行周围添加矩形框(即),heatmap如下所示:

stats::heatmap(matrix(data = rnorm(25),nrow = 5,ncol = 5),Colv = NA,scale = "none")
Run Code Online (Sandbox Code Playgroud)

为了确定参数,rect我需要能够自动检索绘制的热图的 xlim 和 ylim (不是侧面的树状图),但我不知道该怎么做..限制似乎并不存在为 1:5(对于本例)。

r heatmap

1
推荐指数
1
解决办法
74
查看次数

热图颜色对应于R中的数据

我在R中有一维数据向量,我想找到对应于这个数据的热图颜色.例如:

data = c(12,32,33,41,5)
Run Code Online (Sandbox Code Playgroud)

然后我想找到一个与该矢量对应的HEX颜色矢量 - 比如更高的值有更深的颜色,更低的值有更浅的颜色或类似的东西.

是否有任何包/功能可以做到这一点?

谢谢!

r heatmap

0
推荐指数
1
解决办法
1643
查看次数

表示R中列表之间的相似性

我有很多列表包含不同数量的名义元素.我想将每个列表与每个其他列表进行比较,并针对每个组合计算两个列表共享的元素数量.我不是统计学家,但我认为结果在矩阵中最容易表示.

list1=["Joe","Hanna","Alice"]
list2=["Martin","Ted","Joe"]
list3=["Hanna","Ted","Joe"]
Run Code Online (Sandbox Code Playgroud)

相似

之后我想以图形方式表示结果,可能使用热图或聚类表示.

任何人都可以给我一些提示如何使用R?还有什么是好的代表?非常感谢!

r cluster-analysis similarity matrix heatmap

0
推荐指数
1
解决办法
185
查看次数

Google Maps API热图图层 - 单个渐变,两个极端

假设我以通常的方式设置了Google热图图层:

  heatmap = new google.maps.visualization.HeatmapLayer({
    radius: 20,
    opacity: 0.5,
    gradient: g
  });

  heatmap.setMap(map);
Run Code Online (Sandbox Code Playgroud)

哪里:

  var g = [
    'rgba(255, 0, 0, 1)',
    'rgba(255, 255, 0, 0.9)',
    'rgba(0, 255, 0, 0.7)',
    'rgba(173, 255, 47, 0.5)',
    'rgba(152, 251, 152, 0)',
    'rgba(152, 251, 152, 0)',
    'rgba(0, 0, 238, 0.5)',
    'rgba(186, 85, 211, 0.7)',
    'rgba(255, 0, 255, 0.9)',
    'rgba(255, 0, 0, 1)'

]
Run Code Online (Sandbox Code Playgroud)

我正在热映射的事情取0到1的范围.我想显示一个热点,接近0和接近1的值和接近0.5的中性(冷)点.这就是为什么我有更高的不透明度接近该g变量的开头和结尾.

问题是热图图层将NO数据解释为0,因此将地图的空白区域热映射为红色.我想要的是0和1附近的数据是红色的,没有数据的区域是单独的.

有什么建议?

google-maps heatmap google-maps-api-3

0
推荐指数
1
解决办法
6160
查看次数

三个变量作为热图

我想将我的数据绘制为具有以下结构的热图:

X = [1,1,1,1,1,1,1,1,1,1], Y = [1,2,3,4,5,6,7,8,9,10] Z = [0.2, 0.33, 0.1, 0.25, 0.0, 0.9, 0.75, 0.88, 0.44, 0.95]

x和y轴应由X和Y表示,而'heat'由Z的值表示.

例如,在坐标(x,y)=(1,2)处,强度应为0.33如何使用matplotlib实现这一目标?查看与关键字热图有关的帖子,或甚至与术语轮廓图相关的帖子,我还无法将其转移到此问题.

提前感谢任何提示Dan

python matplotlib heatmap

0
推荐指数
1
解决办法
2150
查看次数

python:在matplotlib中更改ax.matshow的大小

我试图使用matplotlib绘制热图,类似于plotly热图。我能够通过matshow图的大小得到输出很小。下图是在此处输入图片说明

是否有可能得到下图: 在此处输入图片说明

以下是我的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

z = []

for _ in range(7):
    new_row = []
    for __ in range(180):
        new_row.append(np.random.poisson())
    z.append(list(new_row))

df1 = pd.DataFrame(np.array(z), columns=range(len(z[0])))

fig = plt.figure(figsize=(20,10))

ax = fig.add_subplot(111)

cax = ax.matshow(df1, interpolation='nearest', cmap='coolwarm')
fig.colorbar(cax)

ax.set_xticklabels([''] + list(df1.columns))
ax.set_yticklabels([''] + list(df1.index))

plt.show()
Run Code Online (Sandbox Code Playgroud)

请帮助。

python matplotlib heatmap

0
推荐指数
1
解决办法
1587
查看次数