【问题标题】:Error bars in different colors with matplotlibmatplotlib 不同颜色的误差线
【发布时间】:2023-03-14 22:23:01
【问题描述】:

我有以下代码,它会生成一个带有垂直和水平误差线的简单图形:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import pylab as pl
import matplotlib.pyplot as plt

x=[2,3]
error_x=[0.5,0.4]
y=[25,28]
error_y=[0.6,0.8]
lines={'linestyle': 'None'}
plt.rc('lines', **lines)
pl.plot(x, y, 'ro', markersize=6)
pl.errorbar(x, y, xerr=error_x, yerr=error_y, fmt='b')
pl.xlim(1.3,3.6)
pl.ylim(24.0,29.0)
pl.show()

但是,两个误差线(垂直和水平)都是蓝色的,我看不出如何为它们指定不同的颜色。这可能吗?例如,我希望将所有水平误差线设为蓝色,将所有垂直误差线设为绿色。

【问题讨论】:

标签: python matplotlib


【解决方案1】:

使用ecolor关键字:

import pylab as pl
import matplotlib.pyplot as plt

x=[2,3]
error_x=[0.5,0.4]
y=[25,28]
error_y=[0.6,0.8]
lines={'linestyle': 'None'}
plt.rc('lines', **lines)
pl.plot(x, y, 'ro', markersize=6)
el = pl.errorbar(x, y, xerr=error_x, yerr=error_y, fmt='b', ecolor='yellow')
pl.xlim(1.3,3.6)
pl.ylim(24.0,29.0)
pl.show()

输出:

不同的颜色线,每条和每个方向:

import pylab as pl
import matplotlib.pyplot as plt

x=[2,3]
error_x=[0.5,0.4]
y=[25,28]
error_y=[0.6,0.8]
lines={'linestyle': 'None'}
plt.rc('lines', **lines)
pl.plot(x, y, 'ro', markersize=6)
el = pl.errorbar(x, y, xerr=error_x, yerr=error_y, fmt='b', ecolor=['yellow','blue'])
elines = el.get_children()
elines[1].set_color('green')
pl.xlim(1.3,3.6)
pl.ylim(24.0,29.0)
pl.show()

输出:

【讨论】:

  • 但在这种情况下,水平和垂直误差线都是黄色的......我希望水平误差线是一种颜色,而垂直误差线是另一种颜色。这可能吗?
  • Hrm.. 让我检查一下。
  • @WildFeather 哇。是的!看看这个。
  • 也许是 matplotlib 版本?我在'2.1.0'
  • 我刚刚想出了另一种方法,它适用于较旧的 Python 版本,并将其作为答案发布。您的在 Python 3 中运行良好。再次感谢您!
【解决方案2】:

对于使用较旧 matplotlib 版本的人的另一个“技巧”:

import pylab as pl
import matplotlib.pyplot as plt

x=[2,3]
error_x=[0.5,0.4]
y=[25,28]
error_y=[0.6,0.8]
lines={'linestyle': 'None'}
plt.rc('lines', **lines)
pl.plot(x, y, 'ro', markersize=6)
pl.errorbar(x, y, xerr=error_x, yerr=0, fmt='b', ecolor='b')
pl.errorbar(x, y, xerr=0, yerr=error_y, fmt='g', ecolor='g')
pl.xlim(1.3,3.6)
pl.ylim(24.0,29.0)
pl.show()

【讨论】:

    猜你喜欢
    • 2021-07-15
    • 2014-03-21
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2019-11-29
    • 2016-02-19
    • 2017-08-13
    相关资源
    最近更新 更多