Я создаю графики подзаговоров, используя цикл for, и когда я включаю «sharex», x-метки для всех подзаговоров неверны и соответствуют последним подзаговорам.Я хочу создать галочку для каждого доступного ярлыка.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({
'letters' : ['A','A','A', 'B','B','B', 'C','C','C', 'D','D','D'],
'values' : [1, 2, 3, 3, 2, 1, 2, 3, 1, 2, 3, 4],
'options': ['O 1', 'O 2', 'O 3', 'O 3', 'O 2', 'O 1',
'O 2','O 3','O 1','O 2','O 3','O 4'],
})
list_letters = ['A', 'B', 'C', 'D']
fig,axes = plt.subplots(nrows = 1, ncols = len(list_letters), sharey = True, sharex = True)
for letter in list_letters:
index = list_letters.index(letter)
df2 = df[(df['letters'] == letter)]
sns.scatterplot(x="options", y="values",data = df2,
hue = 'options', ax=axes[index], legend = False)
axes[index].set_title(letter, rotation = 60, verticalalignment = 'bottom', ha = 'left')
Я специально создал фрейм данных, чтобы в варианте O1 для всех «букв» было значение 1.То же самое для O2, O3 и O4.
При отключенном shareX (False):
![With shareX turned off](https://i.stack.imgur.com/wPAQO.png)
При включенном shareX (True):
![With shareX turned on](https://i.stack.imgur.com/GJ7iR.png)
Обратите внимание, что значения не соответствуют корректно опциям, есть только 3 метки, и все вспомогательные участки соответствуют последнему порядку подпрограмм, когда shareX был выключен.
Это проблемасо струнными осями X.Если я изменю столбец «options» на числовые значения, все работает нормально.Смотрите здесь:
![integer x axes values](https://i.stack.imgur.com/ZDkiT.png)
Есть ли какой-либо способ создать подзаголовки с помощью циклов for, включить ShareX и иметь четыре метки, O1, O2,O3, O4, и все значения правильно совпадают?