При установке размера маркера легенда не отображает маркер с переменным размером - PullRequest
0 голосов
/ 13 апреля 2020

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

    fig = plt.figure(figsize=(40, 10))
ax = fig.add_subplot(111)

ax.scatter(c.consumption_kW[c.ch1_state=='rise'],c.chiller1[c.ch1_state=='rise'],
           marker='^',label='Rise',c='blue',s=c['ch1_slope']*4)

ax.scatter(c.consumption_kW[c.ch1_state=='fall'],c.chiller1[c.ch1_state=='fall'],
           marker='v',label='Fall',c='red',s=c['ch1_slope']*4)

ax.scatter(c.consumption_kW[c.ch1_state=='stable'],c.chiller1[c.ch1_state=='stable'],
           marker='o',label='Stable',c='green')

ax.legend()

Если я не изменю размер маркера, проблема не возникнет, но сюжет менее значим. (смотрите изображение) маркер без размера и код для него.

 fig = plt.figure(figsize=(40, 10))
ax = fig.add_subplot(111)

ax.scatter(c.consumption_kW[c.ch1_state=='rise'],c.chiller1[c.ch1_state=='rise'],
           marker='^',label='Rise',c='blue')

ax.scatter(c.consumption_kW[c.ch1_state=='fall'],c.chiller1[c.ch1_state=='fall'],
           marker='v',label='Fall',c='red')

ax.scatter(c.consumption_kW[c.ch1_state=='stable'],c.chiller1[c.ch1_state=='stable'],
           marker='o',label='Stable',c='green')

ax.legend()

Помогите мне. Заранее большое спасибо. :)

1 Ответ

0 голосов
/ 13 апреля 2020

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

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(40, 10))
ax = fig.add_subplot(111)

x=range(10)
y=[a*5 for a in x]
z=[a*10 for a in x]

ax.scatter(x, y, marker='^',label='Rise',c='blue',s=x*4)
ax.scatter(y, z, marker='v',label='Fall',c='red',s=y*4)
ax.scatter(x, z, marker='o',label='Stable',c='green')

leg=ax.legend()
# Set the marker size of the first row to 20 and the second row to 30
leg.legendHandles[0].set_sizes([20])
leg.legendHandles[1].set_sizes([30])
plt.show()

Результат здесь. enter image description here

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