Эта ошибка отображается при написании моего кода: ValueError: scatter требует, чтобы столбец x был числовым - PullRequest
0 голосов
/ 05 марта 2020

Я хочу увеличить график рассеяния, но следующая функция, когда она используется, показывает, что для разброса требуется, чтобы столбец x был цифрой c. Я смотрел это видео https://www.youtube.com/watch?v=pY9EwZ02sXU, чтобы помочь с моим проектом.

    def plot_region(x_bounds, y_bounds):
           slice = points[
           (x_bounds[0] <= points.x) &
           (points.x <= x_bounds[1]) & 
           (y_bounds[0] <= points.y) &
           (points.y <= y_bounds[1])
          ]

           ax = slice.plot.scatter("x", "y",s=35, figsize=(10, 8))
           for i, point in slice.iterrows():
                     ax.text(point.x + 0.005, point.y + 0.005, point.word, fontsize=11)

    plot_region(x_bounds=(4.0, 4.2), y_bounds=(-0.5, -0.1))

Эта ошибка была показана, когда я пытался запустить свой код:

ValueError                                Traceback (most recent call last)
<ipython-input-55-3606d96f6cad> in <module>
----> 1 plot_region(x_bounds=(4.0, 4.2), y_bounds=(-0.5, -0.1))

<ipython-input-54-4232c0d6bc17> in plot_region(x_bounds, y_bounds)
  7     ]
  8 
----> 9     ax = slice.plot.scatter(x=1,y=1,s=35, figsize=(10, 8))
 10     for i, point in slice.iterrows():
 11         ax.text(point.x + 0.005, point.y + 0.005, point.word, 
 fontsize=11)

 c:\users\ninet\pycharmprojects\minorproject\venv\lib\site- 
 packages\pandas\plotting\_core.py in scatter(self, x, y, s, c, **kwargs)
 1442             ...                       colormap='viridis')
 1443         """
 -> 1444         return self(kind="scatter", x=x, y=y, s=s, c=c, **kwargs)
 1445 
 1446     def hexbin(self, x, y, C=None, reduce_C_function=None, 
 gridsize=None, **kwargs):

 c:\users\ninet\pycharmprojects\minorproject\venv\lib\site- 
 packages\pandas\plotting\_core.py in __call__(self, *args, **kwargs)
 736         if kind in self._dataframe_kinds:
 737             if isinstance(data, ABCDataFrame):
 --> 738                 return plot_backend.plot(data, x=x, y=y, 
 kind=kind, **kwargs)
 739             else:
 740                 raise ValueError(

 c:\users\ninet\pycharmprojects\minorproject\venv\lib\site- 
 packages\pandas\plotting\_matplotlib\__init__.py in plot(data, kind, 
 **kwargs)
 59                 ax = plt.gca()
 60             kwargs["ax"] = getattr(ax, "left_ax", ax)
 ---> 61     plot_obj = PLOT_CLASSES[kind](data, **kwargs)
 62     plot_obj.generate()
 63     plot_obj.draw()

 c:\users\ninet\pycharmprojects\minorproject\venv\lib\site- 
 packages\pandas\plotting\_matplotlib\core.py in __init__(self, data, x, y, 
 s, c, **kwargs)
 928             # the handling of this argument later
 929             s = 20
 --> 930         super().__init__(data, x, y, s=s, **kwargs)
 931         if is_integer(c) and not self.data.columns.holds_integer():
 932             c = self.data.columns[c]

 c:\users\ninet\pycharmprojects\minorproject\venv\lib\site- 
 packages\pandas\plotting\_matplotlib\core.py in __init__(self, data, x, y, 
 **kwargs)
 868             y = self.data.columns[y]
 869         if len(self.data[x]._get_numeric_data()) == 0:
 --> 870             raise ValueError(self._kind + " requires x column to 
 be numeric")
 871         if len(self.data[y]._get_numeric_data()) == 0:
 872             raise ValueError(self._kind + " requires y column to be 
 numeric")

 ValueError: scatter requires x column to be numeric

Может кто-нибудь, пожалуйста, помогите мне разобраться в этой проблеме, что я должен сделать, чтобы исправить эту ошибку?

1 Ответ

0 голосов
/ 05 марта 2020

В каком коде вы делаете это? Понравился какой сайт? Я думаю, вы могли бы попытаться превратить это в HTML формат. Также попробуйте включить это: plot_region (x_bounds = (4.0, 4.2), y_bounds = (- 0.5, -0.1)) Into: plot_region (x_bounds = (4.0, 4.5), y_bounds = (- 0.5, -0.0));

...