Как Могу ли я построить точки так, чтобы они отображались поверх шипов с помощью matplotlib?

Следующее генерирует график с тремя точками данных в (0, 0), (0, 0.5) и (1, 1). Видна только та часть нанесенных на график точек (маленькие кружки), которые лежат внутри области графика, поэтому я вижу четверть окружности в углах и полукруг вдоль левого корешка.

Есть ли уловка, которую я могу использовать, чтобы сделать все точки полностью видимыми, чтобы они не были обрезаны в пределах рамки осей?

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
ax.plot([0, 0, 1], [0, 0.5, 1], 'o')
fig.canvas.print_figure('test.png')

Изменить: Предложение Амро - очевидный подход - не является предпочтительным подходом, поскольку они предназначены для графиков ROC (обычно нарисованных с помощью поле от 0 до 1 по обеим осям). Если бы я мог обмануть matplotlib для получения результатов, подобных многим на http://www.google.com/search?q=roc+plot , в которых прямоугольник находится около 0..1 по обеим осям, но есть точки, нарисованные поверх осевых линий, как и многие из них, это было бы оптимально.

Редактировать 2: Я предполагаю, что это можно сделать, используя « размещение позвоночника » (новое с MPL 0.99), с небольшим увеличением области графика, как предложил Амро , но затем шипы немного изменили, чтобы они были вдоль обеих осей 0. Я поэкспериментирую с этим и опубликую ответ, если он сработает, но не стесняйтесь опередить меня.

5
задан Peter Hansen 9 September 2010 в 23:19
поделиться