3D диаграммы рассеяния в Python с цветовой картой оттенка и легендой - PullRequest
0 голосов
/ 12 сентября 2018

Я искал 3D-графики в Python с Seaborn и не видел ни одного. Я хотел бы построить 3D-набор данных, который я изначально построил с использованием парного графика Seaborn. Может ли кто-нибудь помочь мне с этими 2 вопросами:

  1. Я не могу получить ту же цветовую палитру, что и пара sns, например Как получить цветовую палитру с рисунка 2 и применить к точкам на рисунке 1?
  2. Легенда не прилипает к сюжету или не выглядит так хорошо на парном сюжете, например Когда я делаю plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.,ncol=4), я вижу следующую ошибку: anaconda2 / lib / python2.7 / site-packages / matplotlib / axes / _axes.py: 545: UserWarning: Помеченные объекты не найдены. Используйте label = '...' kwarg на отдельных участках. warnings.warn («Помеченные объекты не найдены.»

Заранее спасибо! Мои ссылки: Как сделать трехмерный точечный график на Python? https://pythonspot.com/3d-scatterplot/ https://jakevdp.github.io/PythonDataScienceHandbook/04.12-three-dimensional-plotting.html

Вот MWE:

import re, seaborn as sns, numpy as np, pandas as pd, random
from pylab import *
from matplotlib.pyplot import plot, show, draw, figure, cm
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
sns.set_style("whitegrid", {'axes.grid' : False})

fig = plt.figure(figsize=(6,6))

ax = Axes3D(fig) # Method 1
# ax = fig.add_subplot(111, projection='3d') # Method 2

x = np.random.uniform(1,20,size=20)
y = np.random.uniform(1,100,size=20)
z = np.random.uniform(1,100,size=20)


ax.scatter(x, y, z, c=x, marker='o')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()

3D plot

#Seaborn pair plot
df_3d = pd.DataFrame()
df_3d['x'] = x
df_3d['y'] = y
df_3d['z'] = z

sns.pairplot(df_3d, hue='x')

Seaborn pairplot

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