首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python - Matplotlib对不同的y值使用不同的颜色

Python - Matplotlib对不同的y值使用不同的颜色
EN

Stack Overflow用户
提问于 2019-10-16 21:12:15
回答 2查看 378关注 0票数 0

我一直在尝试使用matplotlib绘制一些数据。我正在使用:

代码语言:javascript
复制
plt.plot(x1Values, y1Values, color='green', linestyle='None', 
        marker='o', markerfacecolor='blue', markersize=4)

这里的x1Values是一个名称列表,例如:

代码语言:javascript
复制
x1Values = ['alice', 'jordan', 'mike']

y1Values是一个二进制元组列表,例如:

代码语言:javascript
复制
y1Values = [(2,3),(1,1),(4,5)]

现在,上面提到的plot函数基本上像预期的那样工作,x轴上的每个值都有两个点,但是plot有点混乱,因为我的实际列表大小约为100。这就是为什么我要避免使用plt.label()函数来标记这些点的原因。标签开始重叠,使得图表变得凌乱和有点无用。我想要做的是给这些点不同的颜色。例如,在图中,我希望(alice,2)是绿色的,(alice,3)是红色的。同样,(mike,4)是绿色的,(mike,5)是红色的,如果可能的话,(我在这里不抱太大希望,但如果可能的话)我希望重叠点(jordan,1)和(jordan,1)是其他颜色,比如蓝色。但是,如果这是不能实现的,那也没关系,只要其余的都实现了

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-16 21:57:56

我看到你的答案太晚了,所以我也是这么做的:

我认为,一般来说,散点图更适合你的情况。因为它允许您为每个点单独设置颜色。下面的实现也将重叠的结果绘制为蓝色。

代码语言:javascript
复制
from matplotlib import pyplot as plt

x1Values = ['alice', 'jordan', 'mike']
y1Values = [(2,3),(1,1),(4,5)]

xData = []
yData = []
cols = []
for counter, name in enumerate(x1Values):
    #Decide which point gets which color
    if (y1Values[counter][0] > y1Values[counter][1]):
        cols += ['r', 'g']
    elif (y1Values[counter][0] < y1Values[counter][1]):
        cols += ['g', 'r']
    else:
        cols += ['b', 'b']

    #adding names and values to the data for x and y Axes    
    xData += [name, name]
    yData += y1Values[counter]


myplot = plt.scatter(xData, yData, color=cols)

plt.show()
票数 1
EN

Stack Overflow用户

发布于 2019-10-16 21:19:26

在发布问题几分钟后,我就找到了解决方案。将y值分成两个列表,并分别绘制,代码如下:

代码语言:javascript
复制
y1Values = [i[0] for i in yValues]
y2Values = [i[1] for i in yValues]
plt.plot(x1Values, y1Values, color='black', linestyle='None', linewidth = 3, 
        marker='o', markerfacecolor='green', markersize=4)
plt.plot(x1Values, y2Values, color='black', linestyle='None', linewidth = 3, 
        marker='o', markerfacecolor='red', markersize=4)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58414186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档