Участок с заголовком, который зависит от переменных - PullRequest
0 голосов
/ 09 октября 2019

(извините за мой английский ...)

Я ищу метод для создания plot.title, который зависит от моих переменных, уже определенных в начале.

I 'Я не прошу тебя сделать это для меня. Просто чтобы помочь мне найти документы, сайты, форум или тому подобное. Я не нашел в Google, и я не знаю, что печатать, потому что английский не мой родной язык.

В настоящее время я показываю график и создаю PDF. который также содержит график, например:

graphic = plt.figure(1)
plt.plot(ts, xs, label="Position")
plt.plot(ts, vs, label="Velocity")
plt.title("euler-k-10-c-0.1-dt-0.01")
plt.legend()
plt.xlabel("Time ts")
plt.ylabel("Valors of position xs and velocity vs")
plt.show()
pp = PdfPages("Graphics.pdf")
pp.savefig(graphic, dpi = 300, transparent = True)
pp.close()

Я хочу изменить эту строку: plt.title ("euler-k-10-c-0.1-dt-0.01")

Я должен ввести значения переменных k, c и dt, и я хочу изменить имя графического объекта, чтобы оно совпадало с выбранными значениями этих переменных.

ДляНапример, мой код просит ввести значения k, c и dt, поэтому я ввожу: k = 1;с = 0;dt = 0,1

Тогда заголовок графика: euler-k-1-c-0-dt-0.1

Большое спасибо!

Ответы [ 3 ]

0 голосов
/ 09 октября 2019
def make_plots(tx,xs,k,c,dt)
    graphic = plt.figure(1)
    plt.plot(ts, xs, label="Position")
    plt.plot(ts, vs, label="Velocity")
    plt.title(f'euler-k-{k}-c-{c}-dt-{dt}')
    plt.legend()
    plt.xlabel("Time ts")
    plt.ylabel("Valors of position xs and velocity vs")
    plt.show()
    pp = PdfPages("Graphics.pdf")
    pp.savefig(graphic, dpi = 300, transparent = True)
    pp.close()

Создайте функцию и вызывайте ее так часто, как вы меняете k, c и dt.

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

Ой! Спасибо, я не думал, что мне так легко.

Создайте функцию и вызывайте ее так часто, как вы меняете свои k, c и dt.

Hum.. Да спасибо ! Но дело не в этом, ха-ха.

это: plt.title (f'euler-k- {k} -c- {c} -dt- {dt} ') ответьте на мой вопрос. Оно работает ! Теперь я могу сделать это:

k = int (input ("Введите доблесть k:"))

И доблесть k, которую я ввел, считается в заголовке моего графа!

Спасибо!

PS: Мне также было интересно, почему я написал сообщение об ошибке:

k = input ("Введите значение k:")

Это потому, что «вещь», которую вы пишете при выполнении ввода, рассматривается как строка, а не как целое число или число с плавающей точкой! Поэтому мне нужно добавить int (), чтобы все заработало!

Спасибо, ребята, вы потрясающие!

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

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

k = 1
c = 0
dt = 0.1
plt.title(f'euler-k-{k}-c-{c}-dt-{dt}')

сделает эту работу.

Здесь мы использовали форматированные строковые литералы;другие подходы к форматированию строки см. , например, этот обзор .

...