当功能plt.subplots()为不同值时,我想在循环范围内使用swarmplot绘制plate
所以我用一个简单的图来编码,这绝对是正确的。

#I just use i = 5 to specify a value
i = 5
sns.swarmplot(b[b['plate'] == 'BK0000' + str(i)]['plate'],\
              b[b['plate'] == 'BK0000' + str(i)]['tradeMoney'])


python - 使用plt.subplots()绘制sns.swarmplot时出现问题-LMLPHP

但是,当我尝试按以下方式进行编码时,出现了问题:

nrows, ncols = 64, 1
fig, ax = plt.subplots(nrows=nrows, ncols=ncols, figsize=(9, 72), dpi=120)

month_cnt = 1
for i in range(nrows):
    i_ = i
    if (i < 10):
        i = '0' + str(i)

    if (i == 32 | i == 58):
        continue

    sns.swarmplot(b[b['plate'] == 'BK000' + str(i)]['plate'],\
                b[b['plate'] == 'BK000' + str(i)]['tradeMoney'],\
                ax=ax[i_])

    ax[i_].set_xlabel('BK000' + str(i))
    ax[i_].set_ylabel('tradeMoney')


错误消息再次使我困惑。


  -------------------------------------------------- ------------------------- ValueError追踪(最近的呼叫
  最后)
       12 sns.swarmplot(b [b ['plate'] =='BK000'+ str(i)] ['plate'],\
       13 b [b ['plate'] =='BK000'+ str(i)] ['tradeMoney'],\
  ---> 14 ax = ax [i_])
       15
       16个ax [i _]。set_xlabel('BK000'+ str(i))
  
  swarmplot中的〜\ Anaconda3 \ lib \ site-packages \ seaborn \ categorical.py(x,
  y,色相,数据,顺序,hue_order,闪避,东方,颜色,调色板,尺寸,
  edgecolor,linewidth,ax,** kwargs)2975 2976绘图仪=
  _SwarmPlotter(x,y,色相,数据,顺序,色相顺序,
  -> 2977闪避,方向,颜色,调色板)2978   
  〜\ Anaconda3 \ lib \ site-packages \ seaborn \ categorical.py init(自己,
  x,y,色相,数据,顺序,色相顺序,闪避,东方,颜色,调色板)
  1213“”“初始化绘图仪。”“” 1214
  self.built_variables(x,y,色相,数据,方向,顺序,色相顺序)
  -> 1215 self。Establishment_colors(color,palette,1)1216 1217#设置对象属性
  
  〜\ Anaconda3 \ lib \ site-packages \ seaborn \ categorical.py在
  建立颜色(自我,颜色,调色板,饱和度)
      313#确定用于绘图的线条的灰色
      314 light_vals = [colorsys.rgb_to_hls(* c)1对于rgb_colors中的c]
  -> 315流明=分钟(light_vals)* .6
      316灰色= mpl.colors.rgb2hex((lum,lum,lum))
      317
  
  ValueError:min()arg为空序列


而且地块都是空白的。

b['plate'].unique()

array(['BK00001', 'BK00002', 'BK00003', 'BK00004', 'BK00005', 'BK00006',
       'BK00007', 'BK00008', 'BK00009', 'BK00010', 'BK00011', 'BK00012',
       'BK00013', 'BK00014', 'BK00015', 'BK00016', 'BK00017', 'BK00018',
       'BK00019', 'BK00020', 'BK00021', 'BK00022', 'BK00023', 'BK00024',
       'BK00025', 'BK00026', 'BK00027', 'BK00028', 'BK00029', 'BK00030',
       'BK00031', 'BK00033', 'BK00034', 'BK00035', 'BK00036', 'BK00037',
       'BK00038', 'BK00039', 'BK00040', 'BK00041', 'BK00042', 'BK00043',
       'BK00044', 'BK00045', 'BK00046', 'BK00047', 'BK00048', 'BK00049',
       'BK00050', 'BK00051', 'BK00052', 'BK00053', 'BK00054', 'BK00055',
       'BK00056', 'BK00057', 'BK00059', 'BK00060', 'BK00061', 'BK00062',
       'BK00063', 'BK00064', 'BK00065', 'BK00066'], dtype=object)


而且即使我之前已经搜索过,也无法通过错误消息修复它。
有人可以帮我吗?
提前致谢。

最佳答案

您似乎在第一次迭代中尝试对空数据框执行swarmplot。检查以确保存在BK00000或跳过绘制该值。

关于python - 使用plt.subplots()绘制sns.swarmplot时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56221432/

10-15 23:33