PyPlot Когда заданная координата текстового поля является концом строки [duplicate]

К сожалению, назначение innerHTML вызывает уничтожение всех дочерних элементов, даже если вы пытаетесь добавить. Если вы хотите сохранить дочерние узлы (и их обработчики событий), вам нужно будет использовать функции DOM :

function start() {
    var myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    var mydiv = document.getElementById("mydiv");
    mydiv.appendChild(document.createTextNode("bar"));
}

Изменить: решение Боба из комментариев. Отправьте свой ответ, Боб! Получите кредит на это. : -)

function start() {
    var myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    var mydiv = document.getElementById("mydiv");
    var newcontent = document.createElement('div');
    newcontent.innerHTML = "bar";

    while (newcontent.firstChild) {
        mydiv.appendChild(newcontent.firstChild);
    }
}

2
задан Ruggero Turra 4 July 2016 в 15:01
поделиться

1 ответ

Специальное решение, которое вводит магическое значение 25, которое я не очень понимаю, по меньшей мере, является

plt.xlabel('pollo', horizontalalignment='right', position=(1,25))

. Более разумный подход заключается в использовании того, что y, которую выбрал axes.xaxis ... С этой идеей разумная процедура обычно похожа на

  1. получает объект с использованием метода .get_object(...) родительского контейнера
  2. изменить объект
  3. обновить родителя, используя его метод .set_object(...)

. В нашем случае мы делаем график, затем получаем текущую ось ax, который содержит xaxis, который содержит label, положение и выравнивание которых мы хотим изменить.

...
plt.xlabel('...')
...
ax = plt.gca()
label = ax.xaxis.get_label()
x_lab_pos, y_lab_pos = label.get_position()
label.set_position([1.0, y_lab_pos])
label.set_horizontalalignment('right')
ax.xaxis.set_label(label)
...
plt.show()

Что касается действия непосредственно на значения по умолчанию matplotlib, я просматривал plt.rcParams, но я не заметил ничего полезного. Конечно, это не значит, что это невозможно, просто я не вижу жизнеспособного решения.

2
ответ дан gboffi 19 August 2018 в 03:24
поделиться
  • 1
    Мне интересно, можно ли это сделать через глобальные настройки matplotlib – Ruggero Turra 4 July 2016 в 15:01
  • 2
    Невозможно отредактировать из-за ограничения на 6 символов, должно быть plt.xlabel('x description', horizontalalignment='right', x=1.0) – anatol 11 July 2017 в 09:39
  • 3
    @anatol exchange horizontalalignment и x / y (в обоих заявлениях просьба) - это более 6 символов ... и спасибо, что поймали мою ошибку! – gboffi 11 July 2017 в 10:33
Другие вопросы по тегам:

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