Полный код:

ю дело с набором данных, который показывает отношения между двумя точками, такими как автобусные остановки. Например, у нас есть автобусные остановки A, B, C и D.

Я хочу построить гистограмму, которая показывает, для каждой автобусной остановки, сколько времени потребуется, чтобы добраться до трех других автобусных остановок.

Очевидно, что времени от А до А нет, поэтому оно должно быть пустым.

Когда я строю график, я вижу, что в первой строке отображается B C D, во второй строке - A, C, D и т. Д. Столбцы смещены, и цвета не представляют один и тот же столбец в каждой строке.

Если я добавлю sharex = True, он просто удалит метки x на каждой оси. Это явно не то, что я хочу увидеть здесь.

Вместо этого я хотел бы видеть 4 столбца в порядке A, B, C, D. Когда это от A до A, он должен быть просто пустым, а цвета должны быть согласованными.

Кто-нибудь знает, как этого добиться?

import pandas as pd
import numpy as np
import seaborn as sns
%matplotlib inline

time=np.random.randn(1000)
point1 = ['A','B','C','D'] * 250
point2 = ['A'] * 250 + ['B'] * 250 + ['C'] * 250 + ['D'] * 250 

df_time = pd.DataFrame(
    {'point1': point1,
     'point2': point2,
     'time': time
    })
df_time=df_time[df_time['point1']!=df_time['point2']] ##cannot sell to another

fig, ax = plt.subplots(nrows=4, sharey=True)
fig.set_size_inches(12, 16)
for point1i, axi in zip(point1, ax.ravel()):
    sns.boxplot(data=df_time[df_time['point1']==point1i], x='point2', y='time', ax=axi)

Ответы на вопрос(1)

Ваш ответ на вопрос