Постройте несколько графиков, используя pyplot в python - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу построить график рассеяния между всеми комбинациями объектов в данных.Для этого я использую следующий код, но получаю перекрывающиеся графики.

#importing the important libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.cross_validation import train_test_split
from sklearn import metrics
from sklearn import datasets

wine_data = datasets.load_wine()

#exploring the ralationship between the data by visualizing it.
i = 1
plt.figure(figsize=(15,15))
for feature_x_pos,feature_x in enumerate(wine_data.feature_names):
  for feature_y_pos,feature_y in enumerate(wine_data.feature_names):
    if feature_x_pos != feature_y_pos:
      plt.subplot(60,3,i)
      plt.scatter(wine_data.data[:,feature_x_pos],wine_data.data[:,feature_y_pos],c = wine_data.target, cmap = 'jet')
      plt.xlabel(feature_x)
      plt.ylabel(feature_y)
      i=i+1

Данные Wine содержат 13 функций.Я хочу построить график рассеяния между всеми парами объектов.Вывод приведенного выше кода выглядит следующим образом:

enter image description here

Я делаю код на Google Colab.

Пожалуйста, помогите избежатьперекрытие графиков.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Я получил решение, оно просто увеличивало длину фигуры.

#exploring the ralationship between the data by visualizing it.
i = 1
plt.figure(figsize=(15,200)) #changed the length from 15 to 200
for feature_x_pos,feature_x in enumerate(wine_data.feature_names):
  for feature_y_pos,feature_y in enumerate(wine_data.feature_names):
    if feature_x_pos != feature_y_pos:
      plt.subplot(60,3,i)
      plt.scatter(wine_data.data[:,feature_x_pos],wine_data.data[:,feature_y_pos],c = wine_data.target, cmap = 'jet')
      plt.xlabel(feature_x)
      plt.ylabel(feature_y)
      i=i+1

Спасибо всем за ваши комментарии и советы :))

0 голосов
/ 22 сентября 2018

Два решения:

1. Попробуйте добавить plt.tight_layout() в конце кода, который должен функционировать, чтобы устранить наложение.

    i = 1
    plt.figure(figsize=(15,15))
    for feature_x_pos,feature_x in enumerate(wine_data.feature_names):
      for feature_y_pos,feature_y in enumerate(wine_data.feature_names):
        if feature_x_pos != feature_y_pos:
          plt.subplot(60,3,i)
          plt.scatter(wine_data.data[:,feature_x_pos],wine_data.data[:,feature_y_pos],c = wine_data.target, cmap = 'jet')
          plt.xlabel(feature_x)
          plt.ylabel(feature_y)
          i=i+1;

plt.tight_layout()

2. Создайте 180 фигур вместо одной, содержащей 180.

    i = 1

    for feature_x_pos,feature_x in enumerate(wine_data.feature_names):
      for feature_y_pos,feature_y in enumerate(wine_data.feature_names):
        if feature_x_pos != feature_y_pos:
          fig, ax = plt.subplots(1,1)
          ax.scatter(wine_data.data[:,feature_x_pos],wine_data.data[:,feature_y_pos],c = wine_data.target, cmap = 'jet')
          ax.set_xlabel(feature_x)
          ax.set_ylabel(feature_y)
          fig.show()
          i=i+1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...