barakb32
Hola,
Usé el objeto visual de Python para incrustar una dispersión en mi informe.
Me gustaría que la dispersión llenara la pantalla. Tengo 2 problemas con eso:
1. El visual de Python viene con mucho relleno. Tengo un gran espacio en blanco entre el borde de lo visual y el eje de la dispersión.
2. La dispersión sale cuadrada. No sé cómo hacer que su ancho sea mayor que su altura, incluso si el envoltorio visual es más ancho que alto.
¿Se puede resolver esto para Python visual o para R visual?
Gracias,
Barak
barakb32
En respuesta a barakb32
OK,
Lo resolvió con el Talla y aspecto parámetros.
Barak
v-yuta-msft
@ barakb32,
El tamaño de relleno debe decidirse por el código de Python que está utilizando. ¿Podría compartir alguna parte del código de Python para un análisis más detallado?
Equipo de apoyo de la comunidad _ Jimmy Tao
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
barakb32
En respuesta a v-yuta-msft
Este es el código tal como aparece en Power BI:
import matplotlib.pyplot as plt import pandas as pd import seaborn as sns sns.set_palette("pastel") #print (sns.get_dataset_names()) df = pd.DataFrame(dict(x=dataset['Probability01'], y=dataset['Impact110'])) #plt.scatter(x=dataset['Probability01'],y=dataset['Impact110'],s=dataset['Booking']/10000) lm=sns.lmplot(x='Probability01',y='Impact110',data=dataset,hue="Proj_Type",scatter_kws={'s': dataset['Booking']/10000}) #axes=lm.axes #axes[0,0].set_ylim(-1,) #axes[0,1].set_xlim(0,) plt.xlim(-0.1,1.1) plt.ylim(-1,11) for i, txt in enumerate(dataset["Project Name"]): plt.annotate(txt, (df.x.iat[i],df.y.iat[i]),fontsize=15) plt.show()
y así es como aparece en spyder:
# Prolog - Auto Generated # import os, matplotlib.pyplot, uuid, pandas os.chdir(u'C:/Users/barakb/PythonEditorWrapper_2dac1e75-9317-429d-ac0d-8f5d9b7f0e89') dataset = pandas.read_csv('input_df_55fe400c-1be7-4c16-b559-82ca736d13b9.csv') matplotlib.pyplot.figure(figsize=(10,10)) matplotlib.pyplot.show = lambda args=None,kw=None: matplotlib.pyplot.savefig(str(uuid.uuid1())) # Original Script. Please update your script content here and once completed copy below section back to the original editing window # import matplotlib.pyplot as plt import pandas as pd import seaborn as sns sns.set_palette("pastel") #print (sns.get_dataset_names()) df = pd.DataFrame(dict(x=dataset['Probability01'], y=dataset['Impact110'])) #plt.scatter(x=dataset['Probability01'],y=dataset['Impact110'],s=dataset['Booking']/10000) lm=sns.lmplot(x='Probability01',y='Impact110',data=dataset,hue="Type",scatter_kws={'s': dataset['Booking']/10000}) #axes=lm.axes #axes[0,0].set_ylim(-1,) #axes[0,1].set_xlim(0,) plt.xlim(-0.1,1.1) plt.ylim(-1,11) for i, txt in enumerate(dataset["Project Name"]): plt.annotate(txt, (df.x.iat[i],df.y.iat[i]),fontsize=15) plt.show() # Epilog - Auto Generated # os.chdir(u'C:/Users/barakb/PythonEditorWrapper_2dac1e75-9317-429d-ac0d-8f5d9b7f0e89')
BTW1: No creo que sea un relleno de Python, ya que cambié el fondo visual a transparente y puse un rectángulo detrás.
Mientras que el área de trazado oculta el rectángulo, el relleno / espacio en blanco no lo oculta.
BTW2: No hay mucho relleno cuando la imagen es pequeña. El relleno entra en su lugar cuando agrando la imagen para llenar la pantalla.
Barak
barakb32
En respuesta a barakb32
OK,
Lo resolvió con el Talla y aspecto parámetros.
Barak
t-vicarm
En respuesta a barakb32
Hola Barak,
¿Puede explicar mejor lo que quiere decir con «Lo resolvió con el Talla y aspecto parámetros. «? ¿Dónde están esos parámetros? ¿Los cambió en powerbi o en el código en Python?
@ barakb32 escribió:
OK,
Lo resolvió con el Talla y aspecto parámetros.
Barak
barakb32
En respuesta a t-vicarm
Hola @ t-vicarm,
Estos son los parámetros del comando python seaborn.lmplot.
El comando ajustado se ve así:
lm = sns.lmplot (x = ‘Probability01’, y = ‘Impact110’, data = dataset, hue = «Proj_Type», fit_reg = False,tamaño = 10, aspecto = 1,5, scatter_kws = {‘s’: conjunto de datos[‘Booking’]/ 2000})
Barak
aechague
En respuesta a barakb32
Hola
Solo para agregar más información, para matplotlib es posible controlar el relleno usando las opciones tight_layout ().
matplotlib.pyplot.tight_layout() matplotlib.pyplot.show()
En mi caso, las etiquetas de los ejes se mostraban solo parcialmente, y aplicando esta opción era posible controlar el tamaño y la almohadilla completos de la figura.
Alexis