LINUX.ORG.RU

matplotlib обрезается бокс с label + еще вопросы

 ,


0

1

1. На выходе бокс с label обрезается. В боксе мне нужно много значений. Как бы его так сделать, чтобы он корректно в foo.png входил? 2. Есть возможность не в ручную создавать errorbar? т.е чтобы я не делал

for x in some: 
    eval(plt.errorbar(%(some1)s, %(some2)s, label='%(label)s' % ({'some1': some, 'some2': some2, 'label'=label}))
3. Какой корректно использовать bar? Думаю, что errorbar некорретно юзать
import numpy as np
import matplotlib.pyplot as plt


fig = plt.figure()
x = np.arange(10)
x = np.array(x)
y = 2.5 * np.sin(x / 20 * np.pi)
yerr = np.linspace(0.05, 0.2, 10)
print(x)
plt.errorbar(x, y + 1, label='some1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqqqqqqqqqqqqqqqqq')
plt.errorbar(x, y + 2, label='some2bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
plt.errorbar(x, y + 3, label='some3cccccccccccccccccccccccccccccccccccccccccccccccc')
plt.errorbar(x, y + 4, label='some4ddddddddddddddddddddddddddddddddddddddddddddddddd')
plt.errorbar(x, y + 5, label='some5eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee')
plt.errorbar(x, y + 6, label='some6tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt')

plt.legend(loc="upper left", bbox_to_anchor=(1,1))

# plt.show()
plt.savefig('foo.png')
plt.close()


В таких случаях легенду размещают внутри бокса с графиками же: (loc=«upper left», fontsize=6), например.

for x in some: 
    eval(plt.errorbar(%(some1)s, %(some2)s, label='%(label)s' % ({'some1': some, 'some2': some2, 'label'=label}))

WAT

thunar ★★★★★
()
Последнее исправление: thunar (всего исправлений: 1)
Ответ на: комментарий от Xwo

xlim, ylim на что? ещё можно в несколько колонок. А если снаружи, то сверху графика — весьма странно пытаться упихать длинные строки сбоку.

thunar ★★★★★
()

Задача такая: вывести в одном графике дофига всего и чтобы это можно было удобоваримо анализировать. Как шаблон можно заюзать вот этот скрипт

import numpy as np
import matplotlib.pyplot as plt


fig = plt.figure()
x = np.arange(10)
x = np.array(x)
y = 2.5 * np.sin(x / 20 * np.pi)
yerr = np.linspace(0.05, 0.2, 10)
print(x)
for zzz in range (2,100):
    plt.errorbar(x, y + zzz, label='somezzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_%d' % zzz)

Xwo
() автор топика
Последнее исправление: Xwo (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.