Skip to content

BUG: scatter plot with error bars broken on master #8081

Closed
@shoyer

Description

@shoyer

This example works on 0.14.1 but not master:

%matplotlib inline
import numpy as np
import pandas as pd
np.random.seed(12345)
df = pd.DataFrame(np.random.rand(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
df.plot(x='a', y='b', xerr='c', yerr='d', kind='scatter')

I get:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-1-38e437a109be> in <module>()
      4 np.random.seed(12345)
      5 df = pd.DataFrame(np.random.rand(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
----> 6 df.plot(x='a', y='b', xerr='c', yerr='d', kind='scatter')

/Users/shoyer/dev/pandas/pandas/tools/plotting.pyc in plot_frame(frame, x, y, subplots, sharex, sharey, use_index, figsize, grid, legend, rot, ax, style, title, xlim, ylim, logx, logy, xticks, yticks, kind, sort_columns, fontsize, secondary_y, layout, **kwds)
   2223                              secondary_y=secondary_y, layout=layout, **kwds)
   2224 
-> 2225     plot_obj.generate()
   2226     plot_obj.draw()
   2227     return plot_obj.result

/Users/shoyer/dev/pandas/pandas/tools/plotting.pyc in generate(self)
    911         self._compute_plot_data()
    912         self._setup_subplots()
--> 913         self._make_plot()
    914         self._add_table()
    915         self._make_legend()

/Users/shoyer/dev/pandas/pandas/tools/plotting.pyc in _make_plot(self)
   1402 
   1403         errors_x = self._get_errorbars(label=x, index=0, yerr=False)
-> 1404         errors_y = self._get_errorbars(label=y, index=1, xerr=False)
   1405         if len(errors_x) > 0 or len(errors_y) > 0:
   1406             err_kwds = dict(errors_x, **errors_y)

/Users/shoyer/dev/pandas/pandas/tools/plotting.pyc in _get_errorbars(self, label, index, xerr, yerr)
   1362                         err = None
   1363                 elif index is not None and err is not None:
-> 1364                     err = err[index]
   1365 
   1366                 if err is not None:

IndexError: index 1 is out of bounds for axis 0 with size 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    RegressionFunctionality that used to work in a prior pandas versionVisualizationplotting

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions