子图过密解决
效果
可以通过重写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);
}