“ Y轴”行情指示器之间的分布和空间

时间:2018-12-02 22:29:37

标签: python python-3.x matplotlib seaborn

你好吗?

我正在训练要在'Y轴'上制作带有很多股票代码的图表。

我有两个问题:

  1. Tiker没有沿着图形分布,他们留有空白
  2. 它们彼此叠放,彼此之间没有任何空间

我查看了stackoverflow和matplotlib库的文档,但没有找到答案。

我尝试过:

  • plt.tick_params(length = 15)-长度不同,没有差异-
  • plt.tick_params(pad = 25)-具有不同的填充,没有差异-
  • 增大图的长度-这只会使空白变大-
  • plt.ylim(-1,122)-删除空格,但不要在tiker之间留出空间
  • 还有我现在不记得的其他人

代码如下:

def mercVsCapacidad(df, nombre='Test'):

count = len(df.Fecha.unique())


# ============================ Iterando por fechas ===============================
for i in df.Fecha.unique():
    tmp = df[df.Fecha == i]


# ============================== Tamaño dinámico ================================
    if len(tmp) <= 25:
        fig = plt.figure(figsize=(900/96,600/96),dpi=96)
    elif len(tmp) <= 70:
        fig = plt.figure(figsize=(900/96,900/96),dpi=96)
    else:
        fig = plt.figure(figsize=(900/96,1200/96),dpi=96)


# ========================= Agregando celda % de Mercado =========================
    p_mercado = tmp['%\nProducción\nTotal'].sum()
    tmp['% Mercado'] = round(tmp['%\nProducción\nTotal']*100/p_mercado,2)


# ============================== Realizando el plott =============================
    sns.set_style('darkgrid')
    ax = sns.scatterplot(x = '%\n[(Dispon.+ Invers.) /\nDeudas c/Aseg.]',
                         y = 'Denominación',
                         size = '% Mercado',
                         sizes = (100,700),
                         hue = '% Mercado',
                         data = tmp,
                         palette = 'viridis',
                        )


# ================================ Forma del plott ===============================
    plt.suptitle('RELACIÓN % DE MERCADO VS CAPACIDAD DE RESPUESTA', 
                 fontsize=18, fontweight='bold', y = 1)
    plt.ylabel('{}'.format(i), 
               fontsize=16,fontweight='bold')
    plt.xlabel('% de capacidad de respuesta', 
               fontsize=16,fontweight='bold')
    plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), 
               loc='lower left', ncol=5, 
               mode="expand", borderaxespad=0., )
    plt.tick_params(axis='y', labelsize = 7, labelbottom=True ) # labelrotation=45, length=25, pad = 25,length=15,
    plt.xlim(0,800)
    plt.ylim()


# ============================== Guardando el plott =============================
    nombre_archivo = './plots/MercVsCap_'+nombre+str(count).zfill(4)+'.jpg'       
    plt.savefig(nombre_archivo, dpi=96,bbox_inches='tight')                      
    plt.gca()

    count -= 1
    return

图的图像: The result of the plot

如果您想查看完整的代码,我会给您GitHub: GitHub with full code

感谢您的阅读,希望您能帮助我

0 个答案:

没有答案