Класс axes имеет функцию set_yticklabels , которая позволяет вам устанавливать метки меток следующим образом:
#ax is the axes instance
group_labels = ['control', 'cold treatment',
'hot treatment', 'another treatment',
'the last one']
ax.set_xticklabels(group_labels)
Я все еще работаю над тем, почему ваш пример выше не был Не работай.
На самом деле это - ошибка в методе set свойства для текстового свойства. Объявление P/Invoke для NOTIFYICONDATA в Windows Forms использует 128 символьных пределов. Можно бездельничать он с Отражением:
using System;
using System.Windows.Forms;
using System.Reflection;
public class Fixes {
public static void SetNotifyIconText(NotifyIcon ni, string text) {
if (text.Length >= 128) throw new ArgumentOutOfRangeException("Text limited to 127 characters");
Type t = typeof(NotifyIcon);
BindingFlags hidden = BindingFlags.NonPublic | BindingFlags.Instance;
t.GetField("text", hidden).SetValue(ni, text);
if ((bool)t.GetField("added", hidden).GetValue(ni))
t.GetMethod("UpdateIcon", hidden).Invoke(ni, new object[] { true });
}
}
Из документации MSDN относительно структуры Win32 NOTIFYICONDATA :
szTip
А завершенная пустым указателем строка, которая указывает текст для стандартного ToolTip. Это может иметь максимум 64 символов, включая завершающийся нулевой символ.
Для Windows 2000 (версия 5.0 Shell32.dll) и позже, szTip может иметь максимум 128 символов, включая завершающийся нулевой символ.
похоже, что библиотека Windows Forms поддерживает наименьший общий знаменатель здесь.
Подробно останавливаясь на корректном ответе bk1e.
Под капотом, значок системного лотка в WinForms реализован, поскольку Win32 Уведомляет Значок. Поэтому версия winforms имеет все ограничения как собственное. Ограничение размера подсказки является всего одним примером.
bk1e здесь говорит, что предел является 128 символами, теперь при использовании UTF-16 который является собственным unicode форматом в окнах и особенно.NET, которая означает, что Вы ограничены 64 символы , включая NUL.
я полагал бы, что Вы используете unicode API, который ограничивает подсказки 64 16-разрядными символами (включая пустой указатель), и что Сервер VNC использует ASCII (или ANSI) API вместо этого, позволяя использование 128 8-разрядных символов (включая пустой указатель).
РЕДАКТИРОВАНИЕ: Этот ответ является неправильным, вот полезный комментарий Cody Gray, объясняющего почему:
Это обоснование востребовано, но не на самом деле корректно. Когда документация MSDN говорит о "символах", это на самом деле означает количество символа или wchar_t объектов в массиве (в зависимости от того, нацелены ли Вы на Unicode). Таким образом, Вы получаете полные 128 символов, обещанных при работе Windows 2000 +. Windows 9x был ограничен 64 символами. †“Cody Gray 19 июня в 4:11"