У меня есть набор данных, содержащий около 9800 записей. Один столбец содержит имена пользователей (около 60 индивидуальных имен пользователей). Я хочу создать график рассеяния в matplotlib и назначить разные цвета для разных пользователей.Автоматически назначать цвета для рассеивания графика с помощью matplotlib?
Это в основном то, что я делаю:
import matplotlib.pyplot as plt
import pandas as pd
x = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
y = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
users =['mark', 'mark', 'mark', 'rachel', 'rachel', 'rachel', 'jeff', 'jeff', 'jeff', 'lauren', 'lauren', 'lauren']
#this is how the dataframe basicaly looks like
df = pd.DataFrame(dict(x=x, y=y, users=users)
#I go on an append the df with colors manually
#I'll just do it the easy albeit slow way here
colors =['red', 'red', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'yellow', 'yellow', 'yellow']
#this is the dataframe I use for plotting
df1 = pd.DataFrame(dict(x=x, y=y, users=users, colors=colors)
plt.scatter(df1.x, df1.y, c=df1.colors, alpha=0.5)
plt.show()
Однако, я не хочу, чтобы назначить цвета для пользователей вручную. Я должен делать это много раз в ближайшие недели, и пользователи будут отличаться каждый раз.
У меня есть два вопроса:
(1) Есть ли способ, чтобы назначить цвета автоматически для отдельных пользователей? (2) Если да, есть ли способ назначить цветовую схему или палитру?
Возможного дубликат [Scatter участков в панде/Pyplot: Как построить по категории] (http://stackoverflow.com/ вопросы/21654635/scatter-plot-in-pandas-pyplot-how-to-plot-by-category) – tom
@tom Я так не думаю. Мне нужен способ динамического назначения столбца цвета в фрейм данных. Вопрос, который вы предлагаете, относится к сгруппированным графикам, а не к цвету. – Rachel