Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用matplotlib.units注释seaborn线型图失败。ConversionError:无法将值转换为轴单位:';2020-05-14';_Python_Matplotlib_Seaborn - Fatal编程技术网

Python 使用matplotlib.units注释seaborn线型图失败。ConversionError:无法将值转换为轴单位:';2020-05-14';

Python 使用matplotlib.units注释seaborn线型图失败。ConversionError:无法将值转换为轴单位:';2020-05-14';,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我试图在一个海生地块上标注一个点。没有注释,一切都可以按照我的要求进行 无法将值转换为轴单位:“2020-05-14” 我的完整复制数据和代码如下 示例数据集: User name;Files changed;Lines added;Lines deleted;Total lines (delta);Commit count;Repository;Date Dev 1;8;57;37;20;2;ava;2020-05-12 Dev 2;3;75;84;-9;2;ava;2020-05-12 De

我试图在一个海生地块上标注一个点。没有注释,一切都可以按照我的要求进行

无法将值转换为轴单位:“2020-05-14”

我的完整复制数据和代码如下

示例数据集:

User name;Files changed;Lines added;Lines deleted;Total lines (delta);Commit count;Repository;Date
Dev 1;8;57;37;20;2;ava;2020-05-12
Dev 2;3;75;84;-9;2;ava;2020-05-12
Dev 3;2;327;0;327;1;ava;2020-05-12
Dev 2;20;424;132;292;7;ava;2020-05-14
Dev 3;13;114;25;89;3;ava;2020-05-14
Dev 1;4;107;10;97;1;ava;2020-05-14
Dev 4;5;390;0;390;1;ava;2020-05-14
Dev 2;1;2;6;-4;1;ava;2020-05-17
Dev 3;2;13;1;12;1;ava;2020-05-17
Dev 3;4;16;12;4;3;ava;2020-05-18
Dev 5;4;89;51;38;1;ava;2020-05-18
Dev 1;5;65;37;28;1;ava;2020-05-18
Dev 2;11;152;46;106;3;ava;2020-05-19
Dev 4;4;25;15;10;2;ava;2020-05-19
Dev 1;7;1010;15;995;2;ava;2020-05-19
Dev 5;2;4;4;0;1;ava;2020-05-19
Dev 6;1;1;1;0;1;ava;2020-05-19
Dev 1;5;13;31;-18;3;ava;2020-05-20
Dev 6;11;744;850;-106;2;ava;2020-05-20
代码:

数据帧看起来和预期的一样

RangeIndex: 19 entries, 0 to 18                                                                                                                                                                            
Data columns (total 10 columns):                                                                                                                                                                           
 #   Column               Non-Null Count  Dtype                                                                                                                                                            
---  ------               --------------  -----                                                                                                                                                            
 0   User name            19 non-null     object                                                                                                                                                           
 1   Files changed        19 non-null     float64                                                                                                                                                          
 2   Lines added          19 non-null     float64                                                                                                                                                          
 3   Lines deleted        19 non-null     int64                                                                                                                                                            
 4   Total lines (delta)  19 non-null     int64                                                                                                                                                            
 5   Commit count         19 non-null     int64                                                                                                                                                            
 6   Repository           19 non-null     object                                                                                                                                                           
 7   Date                 19 non-null     datetime64[ns]                                                                                                                                                   
 8   Day of year          19 non-null     int64                                                                                                                                                            
 9   Lines removed        19 non-null     int64                                                                                                                                                            
dtypes: datetime64[ns](1), float64(2), int64(5), object(2)                                                                                                                                                 
memory usage: 1.6+ KB 
这是我得到的全部错误

Traceback (most recent call last):                                                                                                                                                                         
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/axis.py", line 1523, in convert_units                                                                                     
    ret = self.converter.convert(x, self.units, self)                                                                                                                                                      
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/dates.py", line 1896, in convert                                                                                          
    return date2num(value)                                                                                                                                                                                 
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/dates.py", line 425, in date2num                                                                                          
    tzi = getattr(d[0], 'tzinfo', None)                                                                                                                                                                    
IndexError: too many indices for array: array is 0-dimensional, but 1 were indexed                                                                                                                         
                                                                                                                                                                                                           
The above exception was the direct cause of the following exception:

Traceback (most recent call last):                                                                                                                                                                [19/1989]
  File "repostats.py", line 71, in <module>                                                                                                                                                                
    plt.savefig('lineschanged.png')                                                                                                                                                                        
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/pyplot.py", line 859, in savefig                                                                                          
    res = fig.savefig(*args, **kwargs)                                                                                                                                                                     
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/figure.py", line 2311, in savefig
    self.canvas.print_figure(fname, **kwargs)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 2210, in print_figure
    result = print_method(
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 1639, in wrapper
    return func(*args, **kwargs)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py", line 509, in print_png
    FigureCanvasAgg.draw(self)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py", line 407, in draw
    self.figure.draw(self.renderer)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/artist.py", line 41, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs) 
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/figure.py", line 1863, in draw
    mimage._draw_list_compositing_images(
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/image.py", line 131, in _draw_list_compositing_images
    a.draw(renderer)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/artist.py", line 41, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs) 
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/cbook/deprecation.py", line 411, in wrapper
    return func(*inner_args, **inner_kwargs)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/axes/_base.py", line 2747, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/image.py", line 131, in _draw_list_compositing_images
    a.draw(renderer)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/artist.py", line 41, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs) 
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/text.py", line 1890, in draw
    if not self.get_visible() or not self._check_xy(renderer):
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/text.py", line 1485, in _check_xy
    xy_pixel = self._get_position_xy(renderer)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/text.py", line 1478, in _get_position_xy
    return self._get_xy(renderer, x, y, self.xycoords)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/text.py", line 1346, in _get_xy
    x = float(self.convert_xunits(x))
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/artist.py", line 175, in convert_xunits
    return ax.xaxis.convert_units(x)
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/axis.py", line 1525, in convert_units
    raise munits.ConversionError('Failed to convert value(s) to axis '
matplotlib.units.ConversionError: Failed to convert value(s) to axis units: '2020-05-14'
图表(无注释):

要回答重复建议-不,这不能解决问题:

plt.annotate("Value here", xy=(mdates.date2num('2020-05-14'),50), 
    size=12,
    ha='right', 
    va="center",
    arrowprops=dict(arrowstyle="->", color='black', connectionstyle="angle3,angleA=0,angleB=-90"))
这引发了:

Traceback (most recent call last):
  File "repo_test.py", line 35, in <module>
    xy=(mdates.date2num('2020-05-14'), 50),
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/dates.py", line 425, in date2num
    tzi = getattr(d[0], 'tzinfo', None)
IndexError: too many indices for array: array is 0-dimensional, but 1 were indexed
回溯(最近一次呼叫最后一次):
文件“repo_test.py”,第35行,在
xy=(日期为2020年5月14日),50),
date2num中的文件“/home/devuser/.virtualenvs/repostats/lib/python3.8/site packages/matplotlib/dates.py”,第425行
tzi=getattr(d[0],'tzinfo',无)
索引器错误:数组的索引太多:数组是0维的,但索引了1

这个
.annotate
调用导致出现
转换错误

注释不直接获取日期时间值,因此应该使用
mdates.dates2num
转换它


xy=(mdates.date2num(datetime.datetime(2020,05,14)),50)

你能在没有错误的情况下发布图表的图片找到你的答案吗<代码>xy=(mdates.date2num(datetime.datetime(2020,05,14)),50)
Simpler应该是xy=(np.datetime64('2020-01-01'),y)
plt.annotate("Value here", xy=(mdates.date2num('2020-05-14'),50), 
    size=12,
    ha='right', 
    va="center",
    arrowprops=dict(arrowstyle="->", color='black', connectionstyle="angle3,angleA=0,angleB=-90"))
Traceback (most recent call last):
  File "repo_test.py", line 35, in <module>
    xy=(mdates.date2num('2020-05-14'), 50),
  File "/home/devuser/.virtualenvs/repostats/lib/python3.8/site-packages/matplotlib/dates.py", line 425, in date2num
    tzi = getattr(d[0], 'tzinfo', None)
IndexError: too many indices for array: array is 0-dimensional, but 1 were indexed