当前位置: 首页 > 面试题库 >

为散点图切片值时,颜色数组出现值错误

仲元凯
2023-03-14
问题内容

我想指定散点图中打印的标记的频率。在markevery不成功之后(其他stackoverflow问题:使用markevery的问题),我按照建议对每第5个值使用x [::
5]和y [:: 5]表示法对值进行切片。

但是,现在我得到了另一个错误。那是,

Traceback (most recent call last):
  File "C:\Users\mkupfer\NASA_SJSU_UARC_work\Info\CodingExamples\PythonExamples\X-Y-Value_Plot_Z-SimTime_02_noSectors.py", line 26, in <module>
    timePlot = ax.scatter(x[::5], y[::5], s=50, c=timeList, marker = marker.next(), edgecolors='none', norm=cNorm, cmap = plt.matplotlib.cm.jet) #cm.Spectral_r
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 5715, in scatter
    colors = mcolors.colorConverter.to_rgba_array(c, alpha)
  File "C:\Python27\lib\site-packages\matplotlib\colors.py", line 380, in to_rgba_array
    raise ValueError("Color array must be two-dimensional")
ValueError: Color array must be two-dimensional

这是我的代码的简化版本:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.lines as lines
from matplotlib import cm
import csv
import itertools
import random

#callSignList = [AMF2052,AMF2052,AMF2052,AMF2052,AMF2052]
xList = random.sample(xrange(100), 100)
yList = random.sample(xrange(100), 100)
timeList = random.sample(xrange(100), 100)

#prepare the plot
fig = plt.figure(figsize=(18,13))
ax = fig.add_subplot(111)

cNorm  = plt.matplotlib.colors.Normalize(vmin=0, vmax=3600)
marker = itertools.cycle(('o', '^', '+', '8', 's', 'p', 'x'))

x = xList
y = yList

timePlot = ax.scatter(x[::5], y[::5], s=50, c=timeList, marker = marker.next(), edgecolors='none', norm=cNorm, cmap = plt.matplotlib.cm.jet) #cm.Spectral_r
fig.subplots_adjust(top=0.90, bottom=0.15, hspace=0.25,)

# Now adding the colorbar
#fig.colorbar(timePlot, shrink=0.5, aspect=10, orientation="horizontal")
cax = fig.add_axes([0.15, 0.06, 0.7, 0.05])
#The numbers in the square brackets of add_axes refer to [left, bottom, width, height],
#where the coordinates are just fractions that go from 0 to 1 of the plotting area.

#ax.colorbar(timePlot)
cbar = fig.colorbar(timePlot, cax, orientation='horizontal')
cbar.set_label('Relative Simulation Time')

plt.show()

有人可以告诉我我犯错了吗?任何帮助表示赞赏。谢谢。


问题答案:

颜色列表的长度应与数据长度相同。因此,您需要应用相同的切片。

timePlot = ax.scatter(x[::5], y[::5], s=50, c=timeList[::5], 
                      marker = marker.next(), edgecolors='none', 
                      norm=cNorm, cmap = plt.matplotlib.cm.jet)


 类似资料:
  • 我想做个散点图 它有一个不是x,y值,而是另一个改变点颜色的值 如果它的价值超过某个价值 只有我找到了 MPAndroidChart,根据y轴值在条形图中设置不同的颜色 这 但在我的例子中,有一个特殊的值对图没有影响 我能做些什么来解决这个问题? 请帮帮我

  • 我在给散点图标记着色时遇到了一些麻烦。我有一个简单的数据框,其中有一个值“pos”和另外两个值“af_min”和“af_max”。我想根据af_x和af_y的一些条件给标记上色,但是因为我没有任何列可以用作色调,所以我创建了自己的列“color”。 现在,我创建了一个散点图,使用海运和海运调色板的方式: 在这里,我放置了整个脚本,以便您可以复制它: 感谢所有能帮忙的人!

  • 我正在尝试使用一个条件,以红色显示负值,以绿色显示正值。这是我所拥有的,但我无法获得积极的值来显示。我在这里该怎么办?在我的情况下如何使用if/else条件?

  • 问题内容: 我想制作一个散点图(使用matplotlib),其中根据第三个变量对点进行阴影处理。我对此非常了解: 其中w和M是数据点,而p是我要相对于其着色的变量。 但是我想用灰度而不是彩色。有人可以帮忙吗? 问题答案: 无需手动设置颜色。相反,请指定灰度颜色图… 或者,如果你希望使用更大范围的颜色图,也可以将 指定为。要使用其中任何一个的反向版本,只需指定其中任何一个的“ ”版本即可。例如,而不

  • 我试图弄清楚如何动态设置数据点的edgecolor。可以使用c=[array of numeric labels]设置facecolor,但对于EdgeColor则不是这样。 我试图实现的是一个图,其中facecolor等于实例算法的预测标签,edgecolor等于该实例的真实标签。这样,我可以直观地比较结果(对于进一步的工作很重要)。 有什么建议吗?这是我目前的代码: 这给了我以下的情节 我感谢

  • 上节课自定义几何体给大家介绍了一个顶点位置坐标概念,本节课给大家介绍一个新的几何体顶点概念,就是几何体顶点颜色。 通常几何体顶点位置坐标数据和几何体顶点颜色数据都是一一对应的,比如顶点1有一个顶点位置坐标数据,也有一个顶点颜色数据,顶点2同样也有一个顶点位置坐标数据,也有一个顶点颜色数据... 每个顶点设置一种颜色 你可以在上节课代码更改为下面代码设置,你可以看到几何体的六个顶点分别渲染为几何体设