У меня есть фрейм данных df
с 5 столбцами, f1, f2, f3, f4, y, где все значения во всех столбцах взяты из конечного набора целых чисел, фактически все столбцы являются категориальными столбцами, преобразованными в целые числа , Я хотел бы нарисовать трехмерную диаграмму рассеяния с f1, f2, f3 на оси, стиль маркера должен быть определен с помощью f4, и, наконец, цвет должен быть определен по столбцу y.
Следующий код имеет дело с осью и цветами.
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig =plt.figure(figsize=(20,16)).gca(projection='3d')
fig.scatter(df['f1'], df['f2'], df['f3'], c=df['y'], s=100)
plt.show()
Однако я не уверен, как получить стиль маркера на основе столбца f4. Удаленно вдохновленный этим сообщением Я, вероятно, определил бы список возможных маркеров:
marker_styles = ['.','o','v','^','>','<','s','p','*','h','H','D','d','1']
Затем я бы сгруппировал свои данные на основе f4. Для каждой группы я бы использовал следующий маркер и повернул назад к началу списка marker_styles, если есть больше групп, чем маркеров.
Я не уверен, как реализовать эту идею, или есть ли лучшие альтернативы.