Настройка размеров пузырьков для сюжетной диаграммы рассеяния в Python - PullRequest
1 голос
/ 10 июня 2019

Я подозреваю, что это простая проблема с кодированием, но я не могу понять, где я ошибаюсь:

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

Я включаю 5 функций:

  1. Размер A (x),
  2. Размер B (y),
  3. Муниципалитет (пузыри),
  4. Провинция (цвет),
  5. Муниципальный размер.

В провинции есть несколько муниципалитетов;Приведенный ниже код прекрасно назначает один и тот же цвет муниципалитетам одной и той же провинции.

figure={'data': [
                go.Scatter(
                    x=df[df['Province'] == i]['Dimension A'],
                    y=df[df['Province'] == i]['Dimension B'],
                    text=df[df['Province'] == i]['Municipalities'],
                    mode='markers',
                    opacity=0.7,
                    marker={
                        'size': df['Size'],
                        'line': {'width': 0.5, 'color': 'white'}
                    },
                    name=i
                ) for i in df.Province.unique()
            ],
            'layout': go.Layout(               
                xaxis={'title': 'Dimension A'},
                yaxis={'title': 'Dimension B'},
                height=700,
                width= 1200,
                margin={'l': 40, 'b': 40, 't': 10, 'r': 10},
                legend={'x': 0, 'y': 1},
                hovermode='closest',
                autosize = False,
            )     
}
iplot(figure)

Однако, когда я пытаюсь назначить размер пузырька функции «Размер», он становится странным.Это меняет размер пузыря первого муниципалитета.Но выходные данные также видят значение первых муниципалитетов, примененное к первому муниципалитету каждой другой провинции (в порядке, в котором это появляется в df).Maddening.Мудрость высоко ценится.

Вот фрагмент данных:

Municipalities,Province,Dimension B,Dimension A,Size //
!Kheis,NC,0.79,1.39,4.22 //
//Khara Hais,NC,0.61,4.75,4.97 //
Abaqulusi,KZN,0.44,4.43,5.32 //
Aganang,LP,0.55,2.56,5.12 //
Albert Luthuli,MP,0.66,3.56,5.27 //
Amahlathi,EC,0.20,3.33,5.09 //
Ba-Phalaborwa,LP,0.22,4.33,5.18 //
Baviaans,EC,0.10,1.95,4.25 //
Beaufort West,WC,0.68,3.04,4.70 //
Bela-Bela,LP,0.60,3.87,4.82 //
Bergrivier,WC,0.53,2.77,4.79 //
Bitou,WC,0.68,5.00,4.69 //
Blouberg,LP,0.37,4.34,5.21 //
Blue Crane Route,EC,0.70,2.20,4.56 //
Breede Valley,WC,0.88,4.67,5.22 //
Buffalo City,EC,0.67,6.57,5.88 //
Bushbuckridge,MP,0.87,5.14,5.73 //
Camdeboo,EC,0.10,1.61,4.71 //
Cape Agulhas,WC,0.42,3.00,4.52 //
Cederberg,WC,0.73,2.94,4.70 //
City of Cape Town,WC,0.73,7.74,6.57 //
City of Johannes,GA,0.65,7.81,6.65 //

1 Ответ

1 голос
/ 11 июня 2019

Вы должны изменить ключ size в словаре marker с:

'size': df['Size'],

на:

'size': df[df['Province'] == i]['Size']

, и вы получите:

enter image description here

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