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

重叠的yticklabels:是否可以控制热图的单元格大小?

笪建章
2023-03-14
问题内容

我有一个大约有200个观测值的数据集,我想把它作为一个热图。每个观察都有一个字符串,我想
显示。我的问题是,我不能阅读这些标签,因为他们重叠彼此。因此,我的问题是,一个人能否以某种方式设置这个细胞
热图的大小是否为yticklabel的字体大小或是否有
其他的解决方法。
在下面的示例中,我使用随机数据进行说明:

import seaborn as sns
import numpy as np
data = np.random.rand(200, 10)
ax = sns.heatmap(data)
for item in ax.get_yticklabels():
    item.set_rotation(0)

有没有办法让这些标签可读?在理想情况下,我
会有一个选项,允许我设置单元格的高度为字体大小
“yticklabels”的。有可能吗?
编辑:
如评论中所述,一种可能是增加预算数字大小。我试着这样做:

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(200, 10)

fig, ax = plt.subplots()
fig.set_size_inches(38.5, 10.5)

ax2 = sns.heatmap(data, ax=ax)
for item in ax2.get_yticklabels():
    item.set_rotation(0)

This gives me the same output. Am I using it correctly?


问题答案:

有没有办法让这些标签可读?在理想的情况下,我
将有一个选项,允许我设置单元格高度的字体大小
“Yticklabels”。有可能吗?
编辑:
如评论所述,一种可能性是增加预算
数字大小。我试着这样做:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# create some random data
data = np.random.rand(150, 10)

# get the tick label font size
fontsize_pt = plt.rcParams['ytick.labelsize']
dpi = 72.27

# comput the matrix height in points and inches
matrix_height_pt = fontsize_pt * data.shape[0]
matrix_height_in = matrix_height_pt / dpi

# compute the required figure height 
top_margin = 0.04  # in percentage of the figure height
bottom_margin = 0.04 # in percentage of the figure height
figure_height = matrix_height_in / (1 - top_margin - bottom_margin)


# build the figure instance with the desired height
fig, ax = plt.subplots(
        figsize=(6,figure_height), 
        gridspec_kw=dict(top=1-top_margin, bottom=bottom_margin))

# let seaborn do it's thing
ax = sns.heatmap(data, ax=ax)

# save the figure
plt.savefig('/tmp/test.png')


 类似资料:
  • 在我的程序中,有一个带有许多加速器的JMenu和一个可编辑的JTable。问题是,当编辑JTable时,加速器键仍然会被触发。 编辑上表中的任何单元格,有一个菜单项设置为哔哔声与加速器'n'。

  • 我试图在我的控制台应用程序中创建流程动画。有没有可能为此需求重写之前的台词?我知道< code>\r但它只对当前行有效。 如果不可能,我怎么能达到动画效果?谢谢。 我的主机是标准的Ubuntu 12.04终端模拟器。 感谢@MrSmith42,我制作了这个简单的演示,它展示了改写行的方法:

  • 我想要的是让第一个textField更靠近第一个jlabel,在第一个textField和第二个jlabel之间有一些空间,像这样: JLabel:JTEXTFIELD-----(spaceeee)-------JLabel:JTEXTFIELD 但我所改变的一切都不能接近我想要的,你看:

  • 问题内容: 我正在尝试创建一个表格,其中每个单元格具有背景颜色,并且它们之间具有空白。但我似乎在执行此操作时遇到了麻烦。 我尝试设置边距,但似乎没有效果。 如果我对填充执行相同的操作,则可以,但是在单元格之间没有间距。 有人可以帮我吗? 问题答案: 使用元素上的属性设置单元格之间的间距。 确保设置为(否则每个单元格之间将有一个单独的边框,而不是每个单元格之间可能会有间隔的单独边框)。

  • 问题内容: 在笔记本的一个单元格中,我已经用 现在,在另一个单元格中,我想再次绘制完全相同的图形,但在其上方添加新的图形(类似于两次连续调用所发生的情况)。我尝试在新单元格中添加以下内容: 但是,我在新单元格中获得的唯一内容是新图,没有前一个图。 一个人怎么能做到这一点? 问题答案: 基本上有两种方法可以解决此问题。 A.面向对象的方法 使用面向对象的方法,即保留图形和/或轴的句柄并在以后的单元格

  • 帮助我正试图用plotly绘制甘特图,但我没有找到一种方法。甘特图类似于水平条形图,每个条形图都有一个“起点”坐标。所以它看起来像: 我找不到让条形图中的“条形图”从特定的X坐标开始的方法。有什么提示/技巧/提示吗?