matplot++库坐标轴标签异常:标题与X轴标签被裁剪缺失
解决matplot++图表标题与X轴标签被裁剪的问题
这个问题是因为默认绘图区域的边距不足,导致标题和X轴标签超出显示范围被裁剪,以下是两种可行的解决方法:
方法一:自动调整布局(推荐)
调用tight_layout()函数,它会自动计算并调整绘图元素的间距,确保所有标签、标题都能完整显示。修改后的代码如下:
#include <cmath> #include <matplot/matplot.h> int main() { using namespace matplot; std::vector<double> x = linspace(0, 2 * pi); std::vector<double> y = transform(x, [](auto x) { return sin(x); }); plot(x, y, "-o"); hold(on); plot(x, transform(y, [](auto y) { return -y; }), "--xr"); plot(x, transform(x, [](auto x) { return x / pi - 1.; }), "-:gs"); plot({ 1.0, 0.7, 0.4, 0.0, -0.4, -0.7, -1 }, "k"); xlabel("X-axis Label"); ylabel("Y-axis Label"); title("My title"); tight_layout(); // 添加此行自动调整布局 show(); return 0; }
方法二:手动调整边距
如果需要更精细的控制,可以手动设置绘图区域的位置,通过gca()获取当前轴对象后,调用set_position()调整边距。示例代码片段:
auto ax = gca(); // 参数为[左, 下, 宽, 高],数值范围0-1,增大下边界值可给X轴标签留出空间 ax->set_position({0.1, 0.15, 0.8, 0.75});
内容的提问来源于stack exchange,提问作者haifisch123
相关产品推荐
相关产品推荐

