Изменить текст метки легенды основного сюжета

Позвольте мне использовать сценарий оболочки Linux для копирования данных таблицы с одного сервера на другой сервер PostgreSQL.

Ссылка, взятая из этого блога:

Linux Bash Shell Script для переноса данных между серверами PostgreSQL:

#!/bin/bash
psql \
    -X \
    -U user_name \
    -h host_name1 \
    -d database_name \
    -c "\\copy tbl_Students to stdout" \
| \
psql \
    -X \
    -U user_name \
    -h host_name2 \
    -d database_name \
    -c "\\copy tbl_Students from stdin"

Я просто переношу данные; создайте пустую таблицу на сервере назначения / второго сервера базы данных.

Это скрипт утилиты. Кроме того, вы можете изменить сценарий для общего использования, например, путем добавления параметров для имени_мастера, имени_базы_данных, table_name и других

29
задан Seanny123 19 June 2017 в 09:02
поделиться

3 ответа

Вам необходимо получить доступ к объекту legend() и использовать set_text() для изменения текстовых значений, простой пример:

plt.plot(range(10), label='Some very long label')
plt.plot(range(1,11), label='Short label')
L=plt.legend()
L.get_texts()[0].set_text('make it short')
plt.savefig('temp.png')

enter image description here

В вашем случае вы меняете первый элемент в легенде, я вполне уверен, что индекс 0 в L.get_texts()[0] относится и к вашей проблеме.

51
ответ дан CT Zhu 19 June 2017 в 09:02
поделиться

Другой способ:

ax.legend(labels=mylabels)
50
ответ дан ksindi 19 June 2017 в 09:02
поделиться

Ответ работами ksindi для установки маркировок, но поскольку некоторые другие прокомментировали, это может повредить цвета легенды при использовании с seaborn (в моем случае scatterplot: точки и текст приводили в порядок не строку правильно больше). Для решения этого также передайте дескрипторы ax.legend.

# the legend has often numbers like '0.450000007', the following snippet turns those in '0.45'
label_list = []
for t in ax.get_legend_handles_labels():
    # the first result will be all handles, i.e. the dots in the legend
    # the second result will be all legend text
    label_list.append(t)

new_list = []
for txt in label_list[1]:
    if txt[0] == '0':
        txt = str(txt)[:4]
    new_list.append(txt)
label_list[1] = new_list

ax.legend(handles=label_list[0], labels=label_list[1])

(я отправил бы это как комментарий, но еще не иметь достаточной репутации)

0
ответ дан 27 November 2019 в 19:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: