gpt4 book ai didi

python - 使用 Dataframe 字段导出颜色和图例的 Pandas 散点图

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:43 26 4
gpt4 key购买 nike

我想创建一个散点图,它显示在 pandas 中相互映射的两列,第三列用于大小,然后是基于标签(在下面的例子中,last_name)的点的颜色。

然后我想要一个图例,该图例显示颜色的点,然后是 last_name 值

每个姓氏应该与不同的颜色相关联,并且图例显示,例如,绿点和 Miller,红点和 Jacobson 等。

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


raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'female': [0, 1, 1, 0, 1],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, 2, 3],
'postTestScore': [25, 94, 57, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'female', 'preTestScore', 'postTestScore'])

plt.scatter(df.preTestScore, df.postTestScore, s=df.age, label=df.last_name)
plt.legend(loc='upper left', prop={'size':6}, bbox_to_anchor=(1,1),ncol=1)

这给了我这样的东西:

enter image description here

我完全不知道如何获取颜色(理想情况下,我喜欢使用调色板)或如何让图例显示姓氏和点

任何帮助将不胜感激..谢谢!

注意 - 我正在以此处的示例 Chris Albon 为例.

最佳答案

首先,为了生成颜色,您可以向数据框中添加一个包含颜色的列。然后可以将这些颜色传递给 scatterc 关键字参数。

用不易访问的条目创建图例的常用解决方案是 generate proxy artists .在这种情况下,可以创建一组不同颜色的标记,并将其提供给 legendhandles 参数。图例标签只是数据框中的 last_names。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.lines

raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'female': [0, 1, 1, 0, 1],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, 2, 3],
'postTestScore': [25, 94, 57, 62, 70],
'colors' : ["r", "g", "b", "k", "cyan"]} # add a column for colors
df = pd.DataFrame(raw_data,
columns = ['first_name', 'last_name', 'age', 'female', 'preTestScore', 'postTestScore', "colors"])

#supply colors as argument for c
plt.scatter(df.preTestScore, df.postTestScore, s=df.age, c=df.colors)
# generate proxy artists for legend
handles = [matplotlib.lines.Line2D([],[], marker="o", color=c, linestyle="none") for c in df.colors.values]
# supply proxy artists to handles and last names to labels
plt.legend(handles=handles, labels=list(df.last_name.values),
loc='upper left', prop={'size':6}, bbox_to_anchor=(1,1),ncol=1, numpoints=1)
plt.subplots_adjust(right=0.8)
plt.show()

enter image description here

关于python - 使用 Dataframe 字段导出颜色和图例的 Pandas 散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com