Дополнительно
Библиотек matplotlib разброс эпюре
Я создал 4Д точечная диаграмма для представления различных температурах в конкретной области. Когда я создаю легенду, легенда показывает правильный символ и цвет, но добавляет строку через него. Код, который я'м через это:
colors=['b', 'c', 'y', 'm', 'r']
lo = plt.Line2D(range(10), range(10), marker='x', color=colors[0])
ll = plt.Line2D(range(10), range(10), marker='o', color=colors[0])
l = plt.Line2D(range(10), range(10), marker='o',color=colors[1])
a = plt.Line2D(range(10), range(10), marker='o',color=colors[2])
h = plt.Line2D(range(10), range(10), marker='o',color=colors[3])
hh = plt.Line2D(range(10), range(10), marker='o',color=colors[4])
ho = plt.Line2D(range(10), range(10), marker='x', color=colors[4])
plt.legend((lo,ll,l,a, h, hh, ho),('Low Outlier', 'LoLo','Lo', 'Average', 'Hi', 'HiHi', 'High Outlier'),numpoints=1, loc='lower left', ncol=3, fontsize=8)
Я пытался менять Line2D
до точечной
и разброс
. "Разброса" возвратил ошибку и "разброса" изменил график и возвратил ошибку.
С "разброса", я изменил диапазон(10) для списков, содержащих точки данных. Каждый список содержит либо Х, Y или Z переменной.
lo = plt.scatter(xLOutlier, yLOutlier, zLOutlier, marker='x', color=colors[0])
ll = plt.scatter(xLoLo, yLoLo, zLoLo, marker='o', color=colors[0])
l = plt.scatter(xLo, yLo, zLo, marker='o',color=colors[1])
a = plt.scatter(xAverage, yAverage, zAverage, marker='o',color=colors[2])
h = plt.scatter(xHi, yHi, zHi, marker='o',color=colors[3])
hh = plt.scatter(xHiHi, yHiHi, zHiHi, marker='o',color=colors[4])
ho = plt.scatter(xHOutlier, yHOutlier, zHOutlier, marker='x', color=colors[4])
plt.legend((lo,ll,l,a, h, hh, ho),('Low Outlier', 'LoLo','Lo', 'Average', 'Hi', 'HiHi', 'High Outlier'),scatterpoints=1, loc='lower left', ncol=3, fontsize=8)
Когда я запускаю это, легенда больше не существует, он представляет собой небольшую белую коробочку в углу, в котором ничего нет.
Какие-либо советы?
50
4
2Д точечной диаграммы
Используя "разброса" метод
библиотек matplotlib.модуль pyplot должны работать (по крайней мере с 1.2.1 библиотек matplotlib в Python 2.7.5), как в приведенном ниже примере кода. Также, если вы используете точечные диаграммы, использовать scatterpoints=1
, а неnumpoints=1
в легенде призыв иметь только одну точку для каждого обозначение.В коде ниже я'ве используемых случайных величин, а не замышляет тот же круг снова и снова, делая всех участках видны (т. е. не перекрывают друг друга).
3Д точечной диаграммы
Для построения разброс в 3D, используйте метод
сюжет
, как легенда не поддерживаетPatch3DCollection
как возвращаетсяразброса
методAxes3D
экземпляр. Чтобы указать markerstyle можно включить это как позиционный аргумент в вызове метода, как показано в примере ниже. При необходимости можно включать аргумент, какметода linestyle
имаркер
параметров.Здесь'ы более простой способ сделать это (источник: здесь):
И вы'll получить это:
Взгляните на здесь для свойства легенды
если вы используете библиотек matplotlib версии 3.1.1 или выше, вы можете попробовать:
Другие ответы, кажется, немного сложным, вы можете просто добавить параметр 'метка' в функцию скаттера и это будет легенда для вашего участка.
Вот твой выход