Как сохранить скудную дендрограмму в виде файла с высоким разрешением? - PullRequest
2 голосов
/ 22 октября 2019

У меня есть матрица, которая имеет 600 различных меток. Следовательно, это действительно большой файл;и я не мог видеть эти ярлыки очень хорошо, когда создавал фигуру для кластеризации своих данных. Как мне создать файл с высоким разрешением и сохранить его?

Я уже пробовал код ниже.

import scipy.cluster.hierarchy as hcluster
import scipy.spatial.distance as ssd

SimMatrix = mainTable

distVec = ssd.squareform(SimMatrix)
linkage = hcluster.linkage(1 - distVec)
dendro  = hcluster.dendrogram(linkage, leaf_rotation=90., leaf_font_size=0.5,)

matplotlib.pyplot.savefig('plt.png', dpi=520, format='png', bbox_inches='tight')

Я пытаюсь получить файл с высоким разрешением, это может быть png или jpeg.

Я получил изображение ниже как рисунок.

https://imgur.com/Iij1BdB

1 Ответ

0 голосов
/ 22 октября 2019

Проблема не в вашем разрешении, а в размере изображения (или размере линий). Так как я не знаю, как изменить ширину линии на графике дендограммы, я просто пойду с прямым решением, чтобы сделать ОГРОМНОЕ изображение.

import scipy.cluster.hierarchy as hcluster
import scipy.spatial.distance as ssd
import matplotlib.pyplot as plt
import numpy as np

SimMatrix = np.random.random((600,600))
SimMatrix = SimMatrix+SimMatrix.T
SimMatrix = np.abs(SimMatrix-np.diag(np.diag(SimMatrix)))

distVec = ssd.squareform(SimMatrix)
linkage = hcluster.linkage(distVec) #Changed here do NOT C+P back
plt.figure(figsize=(150,150))
dendro  = hcluster.dendrogram(linkage, leaf_rotation=90., leaf_font_size=0.5,)

plt.savefig('plt.png', format='png', bbox_inches='tight')
plt.savefig('plt.jpg', format='jpg', bbox_inches='tight')

Сохраненные изображения выглядели плохо для меня, когда я открывалих, и только увеличение решило проблему. Но встроенный сюжет в блокноте jupyter выглядел хорошо, так что, возможно, вам придется немного поиграть с форматом.

Возможно, это не лучшее решение, но для меня это сработало. Надеюсь, что кто-то более компетентный может дать вам правильное решение тоже!

Ps .: Не пытайтесь сохранить их с 520 DPI, это сломает pyplot.

...