Сделайте Matplotlib Scatterplot детальным разрешением как matshow - PullRequest
0 голосов
/ 29 сентября 2019

Я построил разреженную матрицу, используя библиотеку matplotlib с командой scatter .Вот коды:

    self.build_jacobian()
    normalized = clr.Normalize(vmin=-1, vmax=1)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.scatter(self.__jacobian__.tocoo().row, self.__jacobian__.tocoo().col, c=(self.__jacobian__.tocoo().data), s=5, marker='s', edgecolors='none', clip_on=False, cmap='bwr', norm=normalized)
    ax.axis('off')
    ax.axis('tight')
    ax.invert_yaxis()
    nama_file = 'self.__jacobian__'+str(itercount)+'.png'
    plt.savefig(nama_file)

Предположим, что self.__jacobian__ является разреженной матрицей.Тогда результат: введите описание изображения здесь .Результаты этого графика не очень ясны, а разрешение недостаточно велико.

Я также пытался сравнить, используя команду matshow , вот результаты: введите описание изображенияздесь

Этот метод дает лучший и подробный сюжет.Но на этом пути возникает проблема, которая требует плотной матрицы.Это означает, что разреженная матрица, которую я имею, должна быть преобразована в плотную матрицу или 2D.Это будет проблемой, когда размер моей матрицы очень большой, что требует очень большого объема памяти (ОЗУ).По этой причине я предпочитаю scatter .

. Вопрос заключается в следующем: 1. Возможно ли построение графика с использованием scatterplot для получения четких изображений, таких как * 1023?* matshow ?2. Как я могу дать значение оси X и оси Y в изображении, как изображение из matshow ?3. Исходя из приведенного выше кода, какую часть мне нужно исправить?

...