首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >errorbars的Colormap

errorbars的Colormap
EN

Stack Overflow用户
提问于 2020-03-05 01:00:35
回答 1查看 245关注 0票数 1

我尝试使用下面的代码将errorbar的颜色与数据点的颜色进行匹配,但我得到了以下错误

提升ValueError("RGBA序列长度应为3或4")

ValueError: RGBA序列的长度应为3或4

我做错了什么?我们将非常感谢您提出的任何建议。

数据格式:

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.style
import matplotlib.font_manager

data = pd.read_csv('error_data')

size = data['size']
x = data['x']
y = data['y']
error = data['error']

plot_xy = plt.scatter(x, y ,s=20,c=size, alpha=0.5) 
colors = plt.colorbar(plot_xy)
size_colors = mpl.colors.to_rgba(size) 
for x, y, e, color in zip(x, y, error ,colors):
    plt.errorbar(x, y, e, lw=1, capsize=3, color=color, alpha=0.5) 
plt.show()
EN

回答 1

Stack Overflow用户

发布于 2020-03-05 20:34:19

谢谢你的帮助。我设法通过改编这个问题Colormap for errorbars in x-y scatter plot using matplotlib中的代码(如下所示)来让它工作

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

#data
time = np.arange(100.)
signal = time**2
error = np.ones(len(time))*1000

#create a scatter plot
sc = plt.scatter(time,signal,s=0,c=time)

#create colorbar according to the scatter plot
clb = plt.colorbar(sc)

#convert time to a color tuple using the colormap used for scatter
import matplotlib
import matplotlib.cm as cm
norm = matplotlib.colors.Normalize(vmin=min(signal), vmax=max(signal), clip=True)
mapper = cm.ScalarMappable(norm=norm, cmap='viridis')
time_color = np.array([(mapper.to_rgba(v)) for v in signal])

#loop over each data point to plot
for x, y, e, color in zip(time, signal, error, time_color):
    plt.plot(x, y, 'o', color=color)
    plt.errorbar(x, y, e, lw=1, capsize=3, color=color)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60531162

复制
相关文章

相似问题

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