Python散点图根据值不同的颜色

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/43482446/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 23:07:28  来源:igfitidea点击:

Python scatter plot different colors depending on value

pythonpandasmatplotlibplot

提问by Rainoa

I have a dataframe which i want to make a scatter plot of.

我有一个数据框,我想制作散点图。

the dataframe looks like:

数据框看起来像:

       year  length  Animation
0      1971     121       1
1      1939      71       1
2      1941       7       0
3      1996      70       1
4      1975      71       0

I want the points in my scatter plot to be a different color depending the value in the Animation row.
So animation = 1 = yellow
animation = 0 = black
or something similiar

我希望散点图中的点根据动画行中的值具有不同的颜色。
所以动画 = 1 = 黄色
动画 = 0 = 黑色
或类似的东西

I tried doing the following:

我尝试执行以下操作:

dfScat = df[['year','length', 'Animation']]
dfScat = dfScat.loc[dfScat.length < 200]    
axScat = dfScat.plot(kind='scatter', x=0, y=1, alpha=1/15, c=2)

This results in a slider which makes it hard to tell the difference. enter image description here

这会导致滑块难以区分。 在此处输入图片说明

采纳答案by piRSquared

Use the cparameter in scatter

c参数中使用scatter

df.plot.scatter('year', 'length', c='Animation', colormap='jet')

enter image description here

在此处输入图片说明

回答by Arjaan Buijk

You can also assign discrete colors to the points by passing an array to c= Like this:

您还可以通过将数组传递给 c= 来为点分配离散颜色,如下所示:

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

d = {"year"      : (1971, 1939, 1941, 1996, 1975),
     "length"    : ( 121,   71,    7,   70,   71),
     "Animation" : (   1,    1,    0,    1,    0)}

df = pd.DataFrame(d)
print(df)

colors = np.where(df["Animation"]==1,'y','k')
df.plot.scatter(x="year",y="length",c=colors)
plt.show()

This gives:

这给出:

   Animation  length  year
0          1     121  1971
1          1      71  1939
2          0       7  1941
3          1      70  1996
4          0      71  1975

enter image description here

在此处输入图片说明