Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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 如何使用matplotlib.scatter将颜色绘制为第三个变量的函数?_Python_Matplotlib_Scatter - Fatal编程技术网

Python 如何使用matplotlib.scatter将颜色绘制为第三个变量的函数?

Python 如何使用matplotlib.scatter将颜色绘制为第三个变量的函数?,python,matplotlib,scatter,Python,Matplotlib,Scatter,我想用x和y值绘制点,并根据相应的时间值为它们着色。数据存储在数据帧中 解决方案应该是matplotlib的scatter函数的c-参数,但由于某些原因,它对我不起作用。 “时间”列是介于0和3之间的浮点值列表。 在没有c的情况下绘制点-参数正在工作 导入matplotlib.pyplot作为plt c=列表(df_结果_本地['times']) 对于范围内的i(len(df_结果_局部['Points')): plt.scatter(df_result_local['Points'][i].x

我想用x和y值绘制点,并根据相应的时间值为它们着色。数据存储在数据帧中

解决方案应该是matplotlib的
scatter
函数的
c
-参数,但由于某些原因,它对我不起作用。 “时间”列是介于0和3之间的浮点值列表。 在没有
c
的情况下绘制点-参数正在工作

导入matplotlib.pyplot作为plt
c=列表(df_结果_本地['times'])
对于范围内的i(len(df_结果_局部['Points')):
plt.scatter(df_result_local['Points'][i].x,df_result_local['Points'][i].y,c=c,alpha=0.5)

这里我得到了一个ValueError:“c”参数有1698个元素,不能与大小为1的“x”和大小为1的“y”一起使用。

我认为您还需要在
c
上使用索引。所以

plt.scatter(df_result_local['Points'][i].x, df_result_local['Points'][i].y, c=c[i], alpha = 0.5)
试试这个

import matplotlib.pyplot as plt

c=list(df_result_local['times'])
x = []
y = []
for i in range(len(df_result_local['Points'])):
    x.append(df_result_local['Points'][i].x)
    y.append(df_result_local['Points'][i].y)

plt.scatter(df_result_local['Points'][i].x, df_result_local['Points'][i].y, c=c, alpha = 0.5)

你的错误是,x和y轴的长度是1,而c轴的长度是1698。所以你可能还需要把x和y转换成列表,你需要把c[i]转换成你喜欢的颜色。看,翡翠经常被认为是最佳的地图。x,y是一样的吗?我的意思是,如果x=0,y=0,x=5,y=5等等?你从同一列中得到x和y,这没有错,但有点奇怪。我尝试了这个allready:我得到错误:元组索引超出范围。df_result_local['times'][0]->0.31,键入(df_result_local['times'][0])-->numpy.float64正如在其他注释中所说的,c和数据需要具有相同的大小。它的大小相同,但重点是要将x和y作为列表处理。谢谢你!