Python 3: Сюжеты разные, даже если используются одни и те же данные - PullRequest
0 голосов
/ 05 июля 2018

Я использую Python 3 Seaborn для генерации следующих подзаговоров.

import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(500, 12)
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)

На обоих графиках используются одни и те же данные, но они дают разные графики. Я не понимаю почему.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

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

import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(10, 12)
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)

enter image description here

но когда вы пытаетесь нарисовать 500 линий в небольшом пространстве фигуры, matplotlib не может нарисовать все линии и выбирает случайное (?) Подмножество для отображения.

Если бы вы увеличили размер фигуры, чтобы можно было нарисовать все линии, вы снова получили бы тот же результат.

import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(500, 12)
plt.figure(figsize=(10,30))
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)

enter image description here

0 голосов
/ 05 июля 2018
import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(500, 12)

fig, axes = plt.subplots()
axes = sns.heatmap(uniform_data)

fig, axes = plt.subplots()
axes = sns.heatmap(uniform_data)

выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...