Python 如何在使用MatPlotLib制作的散点图中指定不同的点和不同的颜色?

Python 如何在使用MatPlotLib制作的散点图中指定不同的点和不同的颜色?,python,matplotlib,Python,Matplotlib,使用MatPlotLib和Python,我正在绘制笔记本电脑的散点图,其成本在x轴上,评级在y轴上。数据现在存储在选项卡分隔的文件中 此链接介绍MatPlotLib散点图。 每台笔记本电脑的品牌都是Lenova、HP或Dell。我想为代表每个品牌笔记本电脑的点指定不同的颜色。例如,Dell笔记本电脑用蓝点标记,而Lenova笔记本电脑用红点表示 我该怎么做呢?一个更好的例子是 在您的例子中,您需要一些字符串数组来代替close数组,这些字符串是'r'、'g'或'b'中的一个。所以,若你们能读懂

使用MatPlotLib和Python,我正在绘制笔记本电脑的散点图,其成本在x轴上,评级在y轴上。数据现在存储在选项卡分隔的文件中

此链接介绍MatPlotLib散点图。

每台笔记本电脑的品牌都是Lenova、HP或Dell。我想为代表每个品牌笔记本电脑的点指定不同的颜色。例如,Dell笔记本电脑用蓝点标记,而Lenova笔记本电脑用红点表示


我该怎么做呢?

一个更好的例子是

在您的例子中,您需要一些字符串数组来代替
close
数组,这些字符串是
'r'
'g'
'b'
中的一个。所以,若你们能读懂一系列的品牌,你们就可以把它们翻译成一系列的字符。(我猜您不需要与
数组等效的数组,这会使圆的大小不同。)

您可以将
品牌
数组转换为颜色,例如

brandcolors = [brand[i].replace('HP','g').replace('Lenovo','r').replace('Dell','b') for i in range(len(brand))]
然后,绘图函数将如下所示

scatter(cost, rating, c=brandcolors)
添加传奇会有点棘手。建议使用“代理艺术家”,你可以创作一些东西,但不要把它放在情节上。例如:

pr = Rectangle((0, 0), 1, 1, fc='r')
pg = Rectangle((0, 0), 1, 1, fc='g')
pb = Rectangle((0, 0), 1, 1, fc='b')
legend([pr, pg, pb], ['Lenovo', 'HP', 'Dell'])
这有点难看,因为不管圆点形状如何,它都显示为矩形。另一种可能的方法是实际绘制一个点,但要确保它远离绘图区域

plot([-100], 'ro', label='Lenovo')
...
ax.set_ylim(bottom=0)
legend()

最好的办法可能是让这三个小组,然后调用
scatter()
三次。这很容易,虽然。。。在这种情况下,您是否知道如何添加图例?这将手动替换品牌名称,因此图例无法自动生成,对吗?编辑尝试回答。另一种选择是只进行多个调用来分散,比如-,哦,让我们说--