python - 如何删除绘图和导航工具栏之间的边界线?(带 wx 的 matplotlib)
问题描述
我正在尝试删除绘图和导航工具栏之间的边界。
我正在使用的绘图类如下。
import wx
import matplotlib as mpl
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg as NavigationToolbar
class Plot(wx.Panel):
def __init__(self, parent, id=-1, dpi=None, **kwargs):
wx.Panel.__init__(self, parent, id=id, **kwargs)
self.figure = mpl.figure.Figure(dpi=dpi, figsize=(2, 2))
self.canvas = FigureCanvas(self, -1, self.figure)
self.toolbar = NavigationToolbar(self.canvas)
self.toolbar.Realize()
self.axes = self.figure.add_subplot(111)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.canvas, 1, wx.EXPAND)
sizer.Add(self.toolbar, 0, wx.RIGHT | wx.EXPAND)
self.SetSizer(sizer)
以下是主要脚本。框架上有一个基本的罪恶图,背景颜色更改为相同。但是,导航工具栏和我要删除的绘图之间有一条白色边框线。这是图像。
import wx
from matplotlib import pyplot as plt
import numpy as np
from plot_tut import Plot as myPlot
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(900,600))
self.CreateStatusBar() # A Statusbar in the bottom of the window
self.BACKGROUND_COLOUR = wx.Colour((180,180,180))
# Matplotlib Plot
self.plot = myPlot(self)
self.mainsizer = wx.BoxSizer(wx.HORIZONTAL)
self.mainsizer.Add(self.plot, 1, wx.EXPAND)
# call the plotting function
self.exPlot()
self.SetSizer(self.mainsizer)
self.Show()
def exPlot(self):
t = np.arange(0.0, 3.0, 0.01)
s = np.sin(2 *np.pi * t)
color = (self.BACKGROUND_COLOUR.Red()/255.0,
self.BACKGROUND_COLOUR.Green()/255.0,
self.BACKGROUND_COLOUR.Blue()/255.0)
self.plot.figure.set_facecolor(color)
self.plot.axes.plot(t,s)
self.plot.axes.set_facecolor(color)
self.plot.toolbar.SetBackgroundColour(self.BACKGROUND_COLOUR)
self.plot.axes.grid()
app = wx.App(False)
frame = MainWindow(None, "Sample editor")
app.MainLoop()
任何帮助深表感谢。
解决方案
您可以手动编辑此文件:
<path_to>\matplotlib\backends\backend_wx.py, line 1494
从最初:
wx.ToolBar.__init__(self, canvas.GetParent(), -1)
至:
wx.ToolBar.__init__(self, canvas.GetParent(), -1, style=wx.TB_HORIZONTAL|wx.TB_NODIVIDER)
这适用于MatPlotLib 3.0.2
. 不确定其他版本。
推荐阅读
- node.js - 节点js中的小数和
- angular - Angular8+ ngswitch 嵌套组件不更新视图
- asp.net-mvc - 为什么数据没有传输到控制器?
- c - 打印矩阵地址而不是值 | C
- angular - 错误类型错误:无法读取 ngx-leaflet 和 esri-leaflet-geocoder 上未定义的属性“topleft”
- ansible - Ansible中有多个json_query?
- node.js - 如何强制 Eclipse 使用特定版本的 NodeJS 来修复错误“无法确定 Node.js 版本”?
- php - Prestashop 自定义模块变量传递给 Theme .tpl 文件
- flutter - 未处理的异常:MissingPluginException(对于 Flutter 上的许多包,在通道 plugins.flutter.io/ 上找不到方法 getAll 的实现
- iphone - 如何在 Xcode 11.3.1 中测试 3.5 屏幕尺寸的布局,特别是 iPhone 4s?