plt.scatter plot怎么让不同的类别有不同的颜色

  统计/机器学习 数据可视化 Python    浏览次数: 5345
2

如果我用python的pyplot画散点图,怎么可以让不同的类别显示不同的颜色,效果大致如下(网图)

谢谢!


 

雕牌   2017-11-01 09:34



   2个回答 
6

可以用seaborn和matplotlib一起

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

N = 100
genders= ['Female', 'Male']
df = pd.DataFrame({
    'Height': np.random.uniform(low=130, high=200, size=N),
    'Weight': np.random.uniform(low=40, high=100, size=N),
    'Gender': np.random.choice(genders, size=N)
})

fg = sns.FacetGrid(data=df, hue='Gender', hue_order=genders)
fg.map(plt.scatter, 'Weight', 'Height').add_legend()
plt.show()


SofaSofa数据科学社区 DS面经 问答 实战

木子周   2017-11-02 12:45

4


import matplotlib.pyplot as plt
plt.style.use('ggplot')
import pandas as pd
import numpy as np

#随机生成两个dataframe
d1 = pd.DataFrame(columns=['x', 'y'])
d1['x'] = np.random.normal(0, 1, 100)
d1['y'] = np.random.normal(0, 1, 100)
d2 = pd.DataFrame(columns=['x', 'y'])
d2['x'] = np.random.normal(2, 1, 100)
d2['y'] = np.random.normal(2, 1, 100)

#分别画出scatter图,但是设置不同的颜色
plt.scatter(d1['x'], d1['y'], color='blue', label='d1 points')
plt.scatter(d2['x'], d2['y'], color='green', label='d2 points')

#设置图例
plt.legend(loc=(1, 0))

#显示图片
plt.show()


SofaSofa数据科学社区 DS面经 问答 实战

小齐   2017-11-02 07:45



  相关主题

python中怎么用matplotlib在一行里生成多个图?   1回答

%matplotlib inline什么意思?   2回答

matplotlib.pyplot中怎么把legend放到图片外面去?   1回答

plt.pie画饼图,怎么调节透明度alpha   1回答

plt.subplots作图效果很奇怪,出问题   1回答

怎么用Python画这种温度分布图   1回答

python里画出“热图”   4回答

用matplotlib.pyplot作图时,调整标题中文字的大小   1回答

python直方图y轴显示占比,而不是绝对数值   1回答

matplotlib怎样让grid网格线处于图像下层?   1回答

matplotlib.pyplot画图的标题中插入变量   1回答

matplotlib如何设置画图格式,使得可视化效果更好   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!