<p dir="auto">This seems to be specific to Pandas as opposed to matplotlib.  Worked as desired as of a few months ago when I last updated from master.</p>
<p dir="auto">This is the desired behavior in matplotlib:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="plt.barh([0,1], [.3, .5], xerr=[[.1,.2], [.3,.4]],
     color = ['red','green'],
     ecolor='black')"><pre class="notranslate"><span class="pl-s1">plt</span>.<span class="pl-en">barh</span>([<span class="pl-c1">0</span>,<span class="pl-c1">1</span>], [<span class="pl-c1">.3</span>, <span class="pl-c1">.5</span>], <span class="pl-s1">xerr</span><span class="pl-c1">=</span>[[<span class="pl-c1">.1</span>,<span class="pl-c1">.2</span>], [<span class="pl-c1">.3</span>,<span class="pl-c1">.4</span>]],
     <span class="pl-s1">color</span> <span class="pl-c1">=</span> [<span class="pl-s">'red'</span>,<span class="pl-s">'green'</span>],
     <span class="pl-s1">ecolor</span><span class="pl-c1">=</span><span class="pl-s">'black'</span>)</pre></div>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/1308430/3450982/6507afc8-0189-11e4-9ea6-2cb3b417a9c0.png"><img src="https://cloud.githubusercontent.com/assets/1308430/3450982/6507afc8-0189-11e4-9ea6-2cb3b417a9c0.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto">In the Pandas call, it seems to ignore the second error bar argument, both the upper and lower bounds of the error bar are the same:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="s = pd.Series([.3,.5])
s.plot(kind='barh', xerr=[[.1,.2], [.3,.4]],
       color = ['red','green'],
       ecolor='black')"><pre class="notranslate"><span class="pl-s1">s</span> <span class="pl-c1">=</span> <span class="pl-s1">pd</span>.<span class="pl-v">Series</span>([<span class="pl-c1">.3</span>,<span class="pl-c1">.5</span>])
<span class="pl-s1">s</span>.<span class="pl-en">plot</span>(<span class="pl-s1">kind</span><span class="pl-c1">=</span><span class="pl-s">'barh'</span>, <span class="pl-s1">xerr</span><span class="pl-c1">=</span>[[<span class="pl-c1">.1</span>,<span class="pl-c1">.2</span>], [<span class="pl-c1">.3</span>,<span class="pl-c1">.4</span>]],
       <span class="pl-s1">color</span> <span class="pl-c1">=</span> [<span class="pl-s">'red'</span>,<span class="pl-s">'green'</span>],
       <span class="pl-s1">ecolor</span><span class="pl-c1">=</span><span class="pl-s">'black'</span>)</pre></div>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/1308430/3450991/928769fc-0189-11e4-9b16-670a6c98ce66.png"><img src="https://cloud.githubusercontent.com/assets/1308430/3450991/928769fc-0189-11e4-9b16-670a6c98ce66.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto">According to <a href="http://pandas-docs.github.io/pandas-docs-travis/visualization.html#plotting-with-error-bars" rel="nofollow">the documentation</a>, asymmetric error bars should be able to be passed in to <code class="notranslate">plot</code> as an Mx2 array for a <code class="notranslate">Series</code> object or a Mx2xN array for a <code class="notranslate">DataFrame</code> object.</p>
<p dir="auto">However, the code only seems to parse this correctly for a <code class="notranslate">DataFrame</code>: <a href="https://github.com/pydata/pandas/blob/master/pandas/tools/plotting.py#L1338">https://github.com/pydata/pandas/blob/master/pandas/tools/plotting.py#L1338</a></p>
<p dir="auto">When passing raw error values as <code class="notranslate">yerr</code>, it seems that the first values are used as two-sided error differences, instead of being plotted as raw upper and lower values. Note the symmetric error bars below:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/2080084/6335609/b0ad6f62-bb6a-11e4-941e-71154ca48eca.png"><img src="https://cloud.githubusercontent.com/assets/2080084/6335609/b0ad6f62-bb6a-11e4-941e-71154ca48eca.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto">Using the underlying matplotlib function directly yields the expected results, but without the pandas-generated decorations:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/2080084/6335591/8a3bd170-bb6a-11e4-8e36-400f86cf6e91.png"><img src="https://cloud.githubusercontent.com/assets/2080084/6335591/8a3bd170-bb6a-11e4-8e36-400f86cf6e91.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto">This was originally noted in <a href="http://stackoverflow.com/q/26793758/586086" rel="nofollow">this StackOverflow question</a> and I corroborated the other user's experience.</p>