Как установить галочки для одного из трех подзаголовков в Сиборне?

#python #matplotlib #plot #seaborn

Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне?

Я знаю, что могу установить xticks и/или yticks для всех подзаголовков

 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

…но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") fig, (ax1, ax2, ax3) = plt.subplots(3,1,figsize=(12,12)) sns.barplot(x='purchase_float', y='employee_name', data=df_1, ax=ax1) sns.barplot(y='customer_canada', x='employee_name', data=df_1, ax=ax2) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1, ax=ax3) plt.subplots_adjust(hspace = 0.8) plt.show()

Вывод показывает отсутствие деталей в третьем подзаголовке.:

Комментарии:

1. ax3.set_yticks([...]) ? Или from matplotlib.ticker import MultipleLocator с ax3.yaxis.set_major_locator(MultipleLocator(2)) кем ? Обратите внимание, что plt.yticks([...]) изменяется только «текущий график», который по умолчанию будет последним созданным.

2. Привет, спасибо за отзыв. Мне нужно проверить ваше предложение: from matplotlib.ticker import MultipleLocator with ax3.yaxis.set_major_locator(MultipleLocator(2)) . Для целей моего запроса это кажется излишним, но я все равно проверю это завтра, чтобы узнать, когда я смогу использовать этот подход.

Ответ №1:

Это должно сработать:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") fig, (ax1, ax2, ax3) = plt.subplots(3,1,figsize=(12,12)) sns.barplot(x='purchase_float', y='employee_name', data=df_1, ax=ax1) sns.barplot(y='customer_canada', x='employee_name', data=df_1, ax=ax2) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1, ax=ax3) plt.subplots_adjust(hspace = 0.8) plt.show()

Вывод показывает отсутствие деталей в третьем подзаголовке.:

Комментарии:

1. ax3.set_yticks([...]) ? Или from matplotlib.ticker import MultipleLocator с ax3.yaxis.set_major_locator(MultipleLocator(2)) кем ? Обратите внимание, что plt.yticks([...]) изменяется только "текущий график", который по умолчанию будет последним созданным.

2. Привет, спасибо за отзыв. Мне нужно проверить ваше предложение: from matplotlib.ticker import MultipleLocator with ax3.yaxis.set_major_locator(MultipleLocator(2)) . Для целей моего запроса это кажется излишним, но я все равно проверю это завтра, чтобы узнать, когда я смогу использовать этот подход.

Ответ №1:

Это должно сработать:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") plt.figure(figsize=(16, 16)) plt.subplot(3, 1, 1) sns.barplot(x='purchase_float', y='employee_name', data=df_1) plt.subplot(3, 1, 2) sns.barplot(y='customer_canada', x='employee_name', data=df_1) plt.subplot(3, 1, 3) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1) plt.yticks([4, 8, 12]) plt.subplots_adjust(hspace = 0.8) plt.show()

Вы можете настроить любой из подзаголовков аналогичным образом.

Комментарии:

1. Привет, ваш ответ (почти правильный). Проблема в том, что там не должно быть ax=axn раздела, пожалуйста, отредактируйте свой ответ(я опубликую полный ответ ниже в качестве ссылки). 😉 Я буду использовать тот подход, о котором вы упомянули. Кажется, все просто. Спасибо.

Ответ №2:

Я нашел полное решение своей проблемы, используя идею от #Elena_Kosourova.

Мой код:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") fig, (ax1, ax2, ax3) = plt.subplots(3,1,figsize=(12,12)) sns.barplot(x='purchase_float', y='employee_name', data=df_1, ax=ax1) sns.barplot(y='customer_canada', x='employee_name', data=df_1, ax=ax2) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1, ax=ax3) plt.subplots_adjust(hspace = 0.8) plt.show()

Вывод показывает отсутствие деталей в третьем подзаголовке.:

Комментарии:

1. ax3.set_yticks([...]) ? Или from matplotlib.ticker import MultipleLocator с ax3.yaxis.set_major_locator(MultipleLocator(2)) кем ? Обратите внимание, что plt.yticks([...]) изменяется только "текущий график", который по умолчанию будет последним созданным.

2. Привет, спасибо за отзыв. Мне нужно проверить ваше предложение: from matplotlib.ticker import MultipleLocator with ax3.yaxis.set_major_locator(MultipleLocator(2)) . Для целей моего запроса это кажется излишним, но я все равно проверю это завтра, чтобы узнать, когда я смогу использовать этот подход.

Ответ №1:

Это должно сработать:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

 import seaborn as sns ts = pd.Series(df_1["total_purchase"]).str.split(expand=True) # split value from `
 #python #matplotlib #plot #seaborn



Вопрос:

Я ищу решение: как установить галочки для одного из трех подзаголовков в Сиборне? Я знаю, что могу установить xticks и/или yticks для всех подзаголовков
 #specify positions of ticks on x-axis and y-axis plt.xticks([15, 20, 25]) plt.yticks([4, 8, 12])  

...но я не знаю, как я могу сделать это только для одного из трех подэтапов.

Я хочу установить другое yticks для третьего подзаголовка в этом примере кода (я имею в виду ax3 ).:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") fig, (ax1, ax2, ax3) = plt.subplots(3,1,figsize=(12,12)) sns.barplot(x='purchase_float', y='employee_name', data=df_1, ax=ax1) sns.barplot(y='customer_canada', x='employee_name', data=df_1, ax=ax2) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1, ax=ax3) plt.subplots_adjust(hspace = 0.8) plt.show()

Вывод показывает отсутствие деталей в третьем подзаголовке.:

Комментарии:

1. ax3.set_yticks([...]) ? Или from matplotlib.ticker import MultipleLocator с ax3.yaxis.set_major_locator(MultipleLocator(2)) кем ? Обратите внимание, что plt.yticks([...]) изменяется только "текущий график", который по умолчанию будет последним созданным.

2. Привет, спасибо за отзыв. Мне нужно проверить ваше предложение: from matplotlib.ticker import MultipleLocator with ax3.yaxis.set_major_locator(MultipleLocator(2)) . Для целей моего запроса это кажется излишним, но я все равно проверю это завтра, чтобы узнать, когда я смогу использовать этот подход.

Ответ №1:

Это должно сработать:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") plt.figure(figsize=(16, 16)) plt.subplot(3, 1, 1) sns.barplot(x='purchase_float', y='employee_name', data=df_1) plt.subplot(3, 1, 2) sns.barplot(y='customer_canada', x='employee_name', data=df_1) plt.subplot(3, 1, 3) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1) plt.yticks([4, 8, 12]) plt.subplots_adjust(hspace = 0.8) plt.show()

Вы можете настроить любой из подзаголовков аналогичным образом.

Комментарии:

1. Привет, ваш ответ (почти правильный). Проблема в том, что там не должно быть ax=axn раздела, пожалуйста, отредактируйте свой ответ(я опубликую полный ответ ниже в качестве ссылки). 😉 Я буду использовать тот подход, о котором вы упомянули. Кажется, все просто. Спасибо.

Ответ №2:

Я нашел полное решение своей проблемы, используя идею от #Elena_Kosourova.

Мой код:

# df_1[["total_purchase"]] # print(ts[0]) df_1["purchase_float"] = ts[0].astype(float) # We need `float` for plotting df_1 = df_1.reset_index() # We need index as the first column sns.set_theme(style="whitegrid") plt.figure(figsize=(16, 16)) plt.subplot(3, 1, 1) sns.barplot(x='purchase_float', y='employee_name', data=df_1) plt.xticks([250, 500, 750, 1000, 1393, 1584, 1731]) plt.xticks(fontsize=24) plt.yticks(fontsize=24) plt.xlabel("total purchase in USD", fontsize=18) plt.ylabel("", fontsize=18) plt.title('employee income', fontsize=30) plt.subplot(3, 1, 2) sns.barplot(y='customer_canada', x='employee_name', data=df_1) plt.xticks(fontsize=24) plt.yticks(fontsize=24) plt.ylabel("canada customers", fontsize=18) plt.xlabel("", fontsize=18) plt.title("employee's clients from Canada", fontsize=30) plt.subplot(3, 1, 3) sns.barplot(y='customer_dif_country', x='employee_name', data=df_1) plt.yticks([4, 8, 12, 16, 19]) plt.xticks(fontsize=24) plt.yticks(fontsize=24) plt.ylabel("foreign customers", fontsize=18) plt.xlabel("", fontsize=18) plt.title("the employee's foreign customers", fontsize=30) plt.subplots_adjust(hspace = 0.8) # space between subplots plt.show()


введите описание изображения здесь