可以通过调用值为matplotlib.cm的对象将标量值映射到colormap。 值必须介于0和1之间。 因此,为了得到多个卡方分布数据的RBGA值,我将chisq=NP.random.chi square (4,8 )转换为
chisq -=chisq.min (
chisq /=chisq.max (
error bar _ colors=cm.winter (chisq )
可以减去最小值,然后除以所需的最大值,而不是以最小值和最大值开始和结束级别。 在
errorbar_colors是winter颜色贴图的RGBA值的[ 8,4 ]数组。
^{pr2}$
要绘制此图,只需重复颜色和数据点,然后绘制错误栏。 heights=NP.random.randn(8) )。
sem=.4
for i,(height,color ) in enumerate (zip ) height,errorbar_colors ) ) :
PLT.plot([I,i],[height - sem,height sem],c=color,lw=3) ) )。
PLT.plot(heights,marker='o ',ms=12,color='.3 ' )
但是,没有内置完全适合此任务的matplotlib颜色映射。 为了进行一些改进,可以使用seaborn生成可用于为线条着色的连续调色板import numpy as np
导入服务器
import matplotlib.pyplot as plt
frommatplotlib.colorsimportlistedcolormap
chisq=NP.random.chi square (4,8 ) ) ) ) ) ) ) )。
chisq -=chisq.min (
chisq /=chisq.max (
cmap=列出的colormap (seaborn.color _ palette (' gnbu _ d ' ) )
错误bar _ colors=cmap (chisq )
heights=NP.random.randn(8) )。
sem=.4
for i,(height,color ) in enumerate (zip ) height,errorbar_colors ) ) :
PLT.plot([I,i],[height - sem,height sem],c=color,lw=3) ) )。
PLT.plot(heights,marker='o ',ms=12,color='.3 ' )
但是,在这里,我也怀疑这是否是表达你意见的最好方法。 我不知道你的数据是什么样的,但我建议你做两幅图。 一个是你在这里画的因变量,另一个是以卡方统计为因变量。 或者,如果对误差条的大小和卡方值的关系感兴趣,可以直接用散点图画。 在