Python 3D Scatter Plot - Использование категориальной переменной для настройки цвета - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь создать трехмерную диаграмму рассеяния для набора данных mov ie. Я хочу настроить цвет в соответствии с жанром mov ie. У меня есть 5 жанров, и я хочу сделать комедию красной, боевик синего, приключенческого зеленого и т. Д. c.

С этим кодом я могу делать только желтый и красный. Как я могу сделать их все?

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
import numpy as np
import seaborn as sns

movies = pd.read_csv(r'C:\...\movies.csv', nrows = 400)

fig = plt.figure(figsize=(8, 6))
t = fig.suptitle('Wine Residual Sugar - Alcohol Content - Acidity - Type', fontsize=14)
ax = fig.add_subplot(111, projection='3d')

xs = list(movies['gross'])
ys = list(movies['budget'])
zs = list(movies['score'])
data_points = [(x, y, z) for x, y, z in zip(xs, ys, zs)]
colors = ['red' if gt == 'Comedy' else 'yellow' for gt in list(movies['genre'])]

for data, color in zip(data_points, colors):
   x, y, z = data
   ax.scatter(x, y, z, alpha=0.4, c=color, edgecolors='none', s=30)

 ax.set_xlabel('gross')
 ax.set_ylabel('budget')
 ax.set_zlabel('score')

1 Ответ

0 голосов
/ 29 апреля 2020

Определите словарь, в котором ключи - это жанры, а значения - цвета, а затем сделайте colors= [dict[i] for i in list(movies['genre'])]

...