python画图颜色有哪些_python-Matplotlib添加基于现有颜色系列的图例

您可以使用带有基于色图和散点图归一化颜色的空图来创建图例手柄.

import pandas as pd

import numpy as np; np.random.seed(1)

import matplotlib.pyplot as plt

x = [np.random.normal(5,2, size=20), np.random.normal(10,1, size=20),

np.random.normal(5,1, size=20), np.random.normal(10,1, size=20)]

y = [np.random.normal(5,1, size=20), np.random.normal(5,1, size=20),

np.random.normal(10,2, size=20), np.random.normal(10,2, size=20)]

c = [np.ones(20)*(i+1) for i in range(4)]

df = pd.DataFrame({"x":np.array(x).flatten(),

"y":np.array(y).flatten(),

"colors":np.array(c).flatten()})

size=81

sc = plt.scatter(df['x'], df['y'], s=size, c=df['colors'], edgecolors='none')

lp = lambda i: plt.plot([],color=sc.cmap(sc.norm(i)), ms=np.sqrt(size), mec="none",

label="Feature {:g}".format(i), ls="", marker="o")[0]

handles = [lp(i) for i in np.unique(df["colors"])]

plt.legend(handles=handles)

plt.show()

另外,您也可以按颜色列中的值过滤 dataframe ,例如使用groubpy,并为每个功能绘制一个散点图:

import pandas as pd

import numpy as np; np.random.seed(1)

import matplotlib.pyplot as plt

x = [np.random.normal(5,2, size=20), np.random.normal(10,1, size=20),

np.random.normal(5,1, size=20), np.random.normal(10,1, size=20)]

y = [np.random.normal(5,1, size=20), np.random.normal(5,1, size=20),

np.random.normal(10,2, size=20), np.random.normal(10,2, size=20)]

c = [np.ones(20)*(i+1) for i in range(4)]

df = pd.DataFrame({"x":np.array(x).flatten(),

"y":np.array(y).flatten(),

"colors":np.array(c).flatten()})

size=81

cmap = plt.cm.viridis

norm = plt.Normalize(df['colors'].values.min(), df['colors'].values.max())

for i, dff in df.groupby("colors"):

plt.scatter(dff['x'], dff['y'], s=size, c=cmap(norm(dff['colors'])),

edgecolors='none', label="Feature {:g}".format(i))

plt.legend()

plt.show()

两种方法产生相同的图:

tIUdy.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值