Экспорт нескольких изображений в формате pdf или jpg [дубликат]

Вы можете сделать это с помощью функции reshape() или с функциями melt() / cast() в пакете reshape. Для второго варианта пример кода:

library(reshape)
cast(dat1, name ~ numbers)

Или с помощью reshape2

library(reshape2)
dcast(dat1, name ~ numbers)
68
задан tylerthemiler 26 January 2012 в 02:30
поделиться

3 ответа

Во-первых, что происходит, когда T0 is not None? Я бы проверил это, тогда я бы отрегулировал значения, которые я передаю, на plt.subplot(); возможно, значения 131, 132 и 133, или значения, зависящие от того, существует или нет T0.

Во-вторых, после вызова plt.show() создается новая фигура. Чтобы справиться с этим, вы можете

  1. вызывать plt.savefig('tessstttyyy.png', dpi=100), прежде чем вы назовете plt.show()
  2. Сохраните фигуру перед вами show(), вызвав plt.gcf() для «get текущая цифра ", тогда вы можете вызвать savefig() на этом объекте Figure в любое время.

Например:

fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)

В вашем коде ' tesssttyyy.png 'пуст, потому что он сохраняет новую фигуру, на которую ничего не было построено.

127
ответ дан Yann 22 August 2018 в 10:39
поделиться
  • 1
    Забыл удалить часть T0 ... она была прокомментирована ранее. – tylerthemiler 26 January 2012 в 03:18
  • 2
    Да, я вообще снял шоу, и это сработало, это имеет смысл, хотя .... – tylerthemiler 26 January 2012 в 03:18
  • 3
    Это здорово, работает как шарм – denvar 18 April 2016 в 22:30
  • 4
    Частный случай этого происходит в jupyter ноутбуках с включенным %matplotlib inline: вызов savefig должен находиться в той же ячейке, что и способ создания графика. – ijoseph 6 January 2018 в 02:31
  • 5
    Интересно видеть, что plt.show() создает новое изображение. Действительно, это решило проблему. – user989762 15 August 2018 в 08:21

plt.show() должен появиться после plt.savefig()

18
ответ дан JAG2024 22 August 2018 в 10:39
поделиться
  • 1
    Это единственный способ, который помог мне. – Yauhen 1 May 2018 в 18:06
  • 2
    plt.show() очищает все это, поэтому что-нибудь потом произойдет на новой пустой фигуре. – luckydonald 19 June 2018 в 13:40

позвольте мне привести более подробный пример:

import numpy as np
import matplotlib.pyplot as plt


def draw_result(lst_iter, lst_loss, lst_acc, title):
    plt.plot(lst_iter, lst_loss, '-b', label='loss')
    plt.plot(lst_iter, lst_acc, '-r', label='accuracy')

    plt.xlabel("n iteration")
    plt.legend(loc='upper left')
    plt.title(title)
    plt.savefig(title+".png")  # should before plt.show method

    plt.show()


def test_draw():
    lst_iter = range(100)
    lst_loss = [0.01 * i + 0.01 * i ** 2 for i in xrange(100)]
    # lst_loss = np.random.randn(1, 100).reshape((100, ))
    lst_acc = [0.01 * i - 0.01 * i ** 2 for i in xrange(100)]
    # lst_acc = np.random.randn(1, 100).reshape((100, ))
    draw_result(lst_iter, lst_loss, lst_acc, "sgd_method")


if __name__ == '__main__':
    test_draw()

0
ответ дан Jayhello 22 August 2018 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: