【发布时间】:2019-09-07 15:39:11
【问题描述】:
我正在尝试在 tkinter 中实现 pcolor 热图,但即使输入的数据是 20x20 大小的矩阵,它们似乎也被拉伸了,我希望它们像它们应该的那样是正方形的
图片: https://drive.google.com/file/d/1VBSUM8p3HeacW7wQJaCmR8ocrF0WYqBP/view
起初我将 figsize 调用为一个均匀的大小,但它对热图的大小没有任何影响。然后,我调用了 axs.set_aspect = True,这实际上使热图呈方形,但也使它们的大小显着缩小。
然后我更改了包含热图的画布背景。我发现画布的大小不是正方形的,所以我怀疑是画布的大小是罪魁祸首。但是,无论我给画布什么宽度/高度,它的大小仍然不会改变???
self.frame1 = Frame(self)
self.frame1.pack()
self.cvs_plt = LabelFrame(self.frame1, bg = "white")
self.cvs_plt.pack()
data1 = np.random.randn(20, 20)
self.fig = self.drawHeatMap2(data1)
self.fig_cv = FigureCanvasTkAgg(self.fig, self.cvs_plt)
self.fig_cv.get_tk_widget().pack()
def drawHeatMap2(self, data1):
fig, axes = plt.subplots(1, 2, sharey=True)
names = ["Actual", "Expected"]
a = []
for i in range(2):
pcm = axes[i].pcolor(data1, cmap = "viridis_r")
axes[i].set_title(names[i])
axes[i].set_aspect("auto", "datalim", share = True)
cb = fig.colorbar(pcm, ax = axes[i])
a.append(cb)
a[0].ax.set_visible(False)
【问题讨论】:
-
在一个地方卡了2天后,在我发布这个问题后,我回去玩包装,你猜怎么着,一直是figurecanvastkagg。由于某种原因,它的大小是预设的
-
如果此问题不再存在,您可能需要考虑删除此问题。
-
您能否发布您对自己问题的回答以帮助他人?或者,如果不再相关,请删除您的问题。
标签: python matplotlib tkinter heatmap