以下生成带有三个数据点的图,分别为(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')
Run Code Online (Sandbox Code Playgroud)
编辑: Amro的建议 - 显而易见的方法 - 不是首选方法,因为这些是ROC图(通常用两个轴上的0到1的方框绘制).如果我可以欺骗matplotlib产生与http://www.google.com/search?q=roc+plot上的许多类似的结果,这些结果在两个轴上都有一个紧紧围绕0..1的框,但是在顶部绘制了点轴线尽可能多,这将是最佳的.
编辑2:我猜这可以使用" 脊柱放置 "(新的MPL 0.99)完成,绘图区域略微放大,如Amro所示,但随后脊柱重新定位略微沿两个0轴.我将试验这个并发布一个答案,如果它有效,尽管可以随意打败我.
您可以在绘图命令中或通过调用"plot"返回的艺术家对象中关闭剪辑.
首先,这是图,带有额外的大符号,所以很清楚:

在plot命令中你可以做到
ax.plot([0, 0, 1], [0, 0.5, 1], 'o', clip_on=False, markersize=20)
Run Code Online (Sandbox Code Playgroud)
或者你可以拥有
p = ax.plot([0, 0, 1], [0, 0.5, 1], 'o', markersize=20)
for m in p:
m.set_clip_on(False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |