Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 散点图以不同颜色绘制多组点_Python_Matplotlib_Paint_Scatter Plot - Fatal编程技术网

Python 散点图以不同颜色绘制多组点

Python 散点图以不同颜色绘制多组点,python,matplotlib,paint,scatter-plot,Python,Matplotlib,Paint,Scatter Plot,我想把Dicconary的钥匙漆成不同的颜色,我怎么能得到这个 colors: {"Hardcover": "red", "Kindle Edition":"green", "Paperback":"blue", "ebook":"purple", "Unknown Binding":"black"

我想把Dicconary的钥匙漆成不同的颜色,我怎么能得到这个

colors: {"Hardcover": "red", "Kindle Edition":"green", "Paperback":"blue", "ebook":"purple", "Unknown Binding":"black", "Boxed Set - Hardcover":"yellow"}
fig, ax = plt.subplots(figsize=(16, 8))

for key, value in colors.items():
         ax.scatter(data["Type"], data["Price"], c=value, label=key)

ax.legend()
plt.show()

您不必重复颜色。您可以将其作为一个系列传递

data=pd.DataFrame({'Type':['精装本','Kindle版','平装本','Price':[1,2,3]})
颜色={“精装本”:“红色”、“Kindle版”:“绿色”、“平装本”:“蓝色”}
图,ax=plt.子批次(图尺寸=(16,8))
散点颜色=数据['Type']。贴图(颜色)
ax.散布(数据['Type'],数据['Price'],c=散布颜色)
打印(散点颜色)
plt.show()
我认为在你的情况下不需要一个图例。如果您真的想拥有它,我认为唯一的方法可能是迭代“类型”

已编辑,因为OP需要图例: 将上面代码块中的
scatter\u颜色
ax.scatter
行替换为以下内容:

数据['type']中图书类型的
。唯一()
data\u subset=data[data['Type']==book\u Type].copy()
散乱(数据子集['Type',数据子集['Price',颜色=颜色[书本类型],标签=书本类型)
ax.图例()

你的图像上传失败,你能修复吗?你好,汤姆,我正在尝试修复错误,但我无能为力。绘图是这样的:
ax.scatter(数据[“Type”]、数据[“Price”]、…)
将反复绘制相同的数据。因此,散点图将被精确地层叠在一起。非常感谢,这正是我需要的。但我必须添加一个传奇。我怎样才能得到它?现在编辑以显示它。我仍然觉得这是没有意义的,因为x记号标签也在说同样的话,但是如果你愿意…非常感谢!!