Как изменить размеры диаграммы в морском море? [Дубликат]

Используйте метод .on() jQuery http://api.jquery.com/on/ для присоединения обработчиков событий к элементу live.

Также с версии 1.9 .live() удаляется.

84
задан Paul H 6 March 2017 в 22:43
поделиться

6 ответов

Вам нужно создать объекты matplotlib Figure и Axes заблаговременно, указав, насколько велика цифра:

from matplotlib import pyplot
import seaborn

import mylib

a4_dims = (11.7, 8.27)
df = mylib.load_data()
fig, ax = pyplot.subplots(figsize=a4_dims)
seaborn.violinplot(ax=ax, data=df, **violin_options)
69
ответ дан Catalin Rusnac 19 August 2018 в 15:14
поделиться
  • 1
    это решение, похоже, не работает с последующим кодом (разным сюжетом). Есть идеи? Я предполагаю, что "mylib" это только библиотека, в которой вы сохранили свои данные и не нужны в этом коде: `fig, ax = pyplot.subplots (figsize = (12,6)); sns.jointplot (memoryPrice ['price'], memoryPrice ['Memory']) ` – TMWP 1 August 2017 в 03:25
  • 2
    Этот ответ не работает в случае @ TMWP, потому что jointplot - это метод уровня фигуры. См. Ответ ниже. – elphz 1 August 2018 в 14:04
  • 3

Обратите внимание: если вы пытаетесь перейти к методу «уровень фигуры» на морском побережье (например, lmplot, catplot / factorplot, jointplot), вы можете и должны указывать это в аргументах, используя height и aspect.

sns.catplot(data=df, x='xvar', y='yvar', 
    hue='hue_bar', height=8.27, aspect=11.7/8.27)

См. https://github.com/mwaskom/seaborn/issues/488 и Построение графика с помощью морского матраса с помощью matplotlib объектно-ориентированный интерфейс для более подробной информации о том, что методы уровня фигуры не соответствуют спецификациям осей.

2
ответ дан elphz 19 August 2018 в 15:14
поделиться

Вы можете установить контекст как poster или вручную установить fig_size.

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

np.random.seed(0)
n, p = 40, 8
d = np.random.normal(0, 2, (n, p))
d += np.log(np.arange(1, p + 1)) * -5 + 10


# plot
sns.set_style('ticks')
fig, ax = plt.subplots()
# the size of A4 paper
fig.set_size_inches(11.7, 8.27)
sns.violinplot(data=d, inner="points", ax=ax)    
sns.despine()

fig.savefig('example.png')

68
ответ дан Jianxun Li 19 August 2018 в 15:14
поделиться
  • 1
    Я не понимаю, почему этот ответ был отклонен. Это полезная альтернатива. Он также учит меня нескольким вещам, которые, хотя и не напрямую отвечают на вопрос, полезны, и я пропустил в документах. – Michael Grazebrook 26 July 2015 в 21:39
  • 2

сначала импортировать matplotlib и использовать его для установки размера фигуры

from matplotlib import pyplot as plt
import seaborn as sns

plt.figure(figsize=(15,8))
ax = sns.barplot(x="Word", y="Frequency", data=boxdata)
3
ответ дан Shubham Chaudhary 19 August 2018 в 15:14
поделиться

Вы также можете установить размер фигуры, передав словарь в параметр rc с помощью клавиши 'figure.figsize' в методе морского транспорта set:

import seaborn as sns

sns.set(rc={'figure.figsize':(11.7,8.27)})

Другой альтернативой может быть использование figure.figsize в rcParams, чтобы установить размер фигуры, как показано ниже:

from matplotlib import rcParams

# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27

Более подробную информацию можно найти в документации matplotlib

52
ответ дан student 19 August 2018 в 15:14
поделиться
2
ответ дан Chris 31 October 2018 в 02:32
поделиться
Другие вопросы по тегам:

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