matplotlib4j 综合问题解决

子图过密解决

        效果

 

        可以通过重写executeSilently()进行解决

重点在于此行代码将字体缩小,从而整张图片等比放大了。

scriptLines.add("mpl.rc('font',size=8)");
    @Override
    public void executeSilently() throws IOException, PythonExecutionException {
        List<String> scriptLines = new LinkedList<>();
        scriptLines.add("import numpy as np");
        scriptLines.add("import matplotlib as mpl");
        scriptLines.add("mpl.use('Agg')");
        scriptLines.add("import matplotlib.pyplot as plt");
        scriptLines.add("mpl.rc('font',size=8)");
        scriptLines.add("figure = plt.gcf()");
        scriptLines.add("plt.rcParams['font.sans-serif']=['SimHei']");
        scriptLines.add("plt.rcParams['axes.unicode_minus']=False");
        scriptLines.add("figure.set_size_inches(12, 8)");
        registeredBuilders.forEach(b -> scriptLines.add(b.build()));
        showBuilders.forEach(b -> scriptLines.add(b.build()));
        PyCommand command = new PyCommand(pythonConfig);
        command.execute(Joiner.on('\n').join(scriptLines));
    }

生成值问题解决

上面图可以观察到图像在生成时,值都是重复的问题出现在这里

    private List<List<? extends Number>> xList = new LinkedList<>();

    @Override
    public HistBuilder add(List<? extends Number> nums) {
        xList.add(nums);
        return this;
    }

上面这段代码里面使用了一段linklist去添加你的list所以要生成柱状图的话需要指定值例如,生成出来就会像第一张图片里面第一张子图 生成在20点位 高为20的图片

		List<Integer> x = new ArrayList<>();
		for(int i = 0 ; i < 20; i++){
			x.add(20);
		}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值