当前位置: 首页 > 面试题库 >

海本热图图中的离散图例

楚奇逸
2023-03-14
问题内容

我用这里的数据,用seaborn和
熊猫。
代码:

    import pandas
    import seaborn.apionly as sns

    # Read in csv file
    df_trans = pandas.read_csv('LUH2_trans_matrix.csv')

    sns.set(font_scale=0.8)
    cmap = sns.cubehelix_palette(start=2.8, rot=.1, light=0.9, as_cmap=True)
    cmap.set_under('gray')  # 0 values in activity matrix are shown in gray (inactive transitions)
    df_trans = df_trans.set_index(['Unnamed: 0'])
    ax = sns.heatmap(df_trans, cmap=cmap, linewidths=.5, linecolor='lightgray')

    # X - Y axis labels
    ax.set_ylabel('FROM')
    ax.set_xlabel('TO')

    # Rotate tick labels
    locs, labels = plt.xticks()
    plt.setp(labels, rotation=0)
    locs, labels = plt.yticks()
    plt.setp(labels, rotation=0)

    # revert matplotlib params
    sns.reset_orig()

从csv文件中可以看到,它包含3个离散值:0、-1和1。我
想要一个离散的图例而不是色条。将0标记为A、-1标记为B和1
作为C.我怎么做?


问题答案:

好吧,要做到这一点肯定不止一种方法。在这种情况下,
由于只需要三种颜色,我会选择自己的颜色创建一个
LinearSegmentedColormap而不是使用“cubehelix\u palete”生成它们。
如果有足够的颜色来保证使用“cubehelix\u调色板”,我会的
使用
cbar_kws参数。无论哪种方式,都可以使用手动指定记号
设置记号和标签。 下面的代码示例演示如何手动创建LinearSegmentedColormap`,并包含有关如何指定边界的注释
如果改用“cubehelix\u palete”。

import matplotlib.pyplot as plt
import pandas
import seaborn.apionly as sns
from matplotlib.colors import LinearSegmentedColormap

sns.set(font_scale=0.8)
dataFrame = pandas.read_csv('LUH2_trans_matrix.csv').set_index(['Unnamed: 0'])

# For only three colors, it's easier to choose them yourself.
# If you still really want to generate a colormap with cubehelix_palette instead,
# add a cbar_kws={"boundaries": linspace(-1, 1, 4)} to the heatmap invocation
# to have it generate a discrete colorbar instead of a continous one.
myColors = ((0.8, 0.0, 0.0, 1.0), (0.0, 0.8, 0.0, 1.0), (0.0, 0.0, 0.8, 1.0))
cmap = LinearSegmentedColormap.from_list('Custom', myColors, len(myColors))

ax = sns.heatmap(dataFrame, cmap=cmap, linewidths=.5, linecolor='lightgray')

# Manually specify colorbar labelling after it's been generated
colorbar = ax.collections[0].colorbar
colorbar.set_ticks([-0.667, 0, 0.667])
colorbar.set_ticklabels(['B', 'A', 'C'])

# X - Y axis labels
ax.set_ylabel('FROM')
ax.set_xlabel('TO')

# Only y-axis labels need their rotation set, x-axis labels already have a rotation of 0
_, labels = plt.yticks()
plt.setp(labels, rotation=0)

plt.show()


 类似资料:
  • 散点图基于基本折线图,x 轴更改为线性轴。要使用散点图,数据必须作为包含 X 和 Y 属性的对象传递。下面的例子创建了一个 3 点的散点图。 var scatterChart = new Chart(ctx, { type: "scatter", data: { datasets: [ { label: "Sc

  • 这是一个非常特殊的绘图请求,但我有数据要以非常特殊的方式查看。情况如下: 1) 我拥有的数据分为25个数据箱,每个数据箱包含不同数量的数据点。仓位值越大,粗略地说,仓位中的数据点数量就越少(这只是数据处理的结果)。 2)我可以访问bin值。 我可以在matplotlib中轻松生成“errorbar”类型的绘图(y轴从半径缩放到以下度数): 但是,对于我想研究的内容来说,这并不是特别有见地。我真的很

  • 热图以表格格式将数据表示为一个范围的颜色。较强烈的颜色表示特定数据点有较大聚合值。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的

  • 热图以表格格式将数据表示为一个范围的颜色。较强烈的颜色表示特定数据点有较大聚合值。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对齐方式

  • 热图以表格格式将数据表示为一个范围的颜色。较强烈的颜色表示特定数据点有较大聚合值。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的

  • 引言 目前SiteMonitor V5提供页面点击热图及页面链接点击图的分析 并支持 热图数据维度筛选,查看原图, 热图敏感度调节 等功能。 6.4.1 什么是页面点击热图? 页面点击热图是对访客与网站交互动作的可视化展现。用户在站点内的各种操作,如鼠标点击动作,鼠标滚轮的滚动,及移动设备上的触摸与滑动动作等,均可以利用热图呈现,颜色越深的区域表示点击越多,颜色越浅则表示点击少。 6.4.2 什么