Matplotlib2tikz 增加刻度之间的间距

Matplotlib2tikz 增加刻度之间的间距

我正在使用matplotlib2tikz它绘制条形图。但是,刻度之间的间距不够。如何增加结果之间的间距?

我的代码:

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import scipy as sp

h = [47]*90
labels = ['a']*90
fig = plt.figure(figsize=(len(labels) * 0.45, 7))
ax = fig.add_subplot(111)
rects1 = ax.bar(sp.arange(len(h)), h, 0.35, color='r')
ax.set_xticks(sp.arange(len(labels)))
ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")
ax.set_xticklabels(labels,fontsize=14, rotation="vertical")
ax.set_title("Test plot")
from matplotlib2tikz import save as tikz_save
tikz_save("test.tex")

结果如下: 在此处输入图片描述

我希望标签之间的间隔更大,以便于阅读 - 我该如何实现?(无需手动编辑生成的 tikz 代码)

答案1

如果必须显示所有标签,那么您的选择就有点有限了。您可以减少条形图和轴边之间的空白,可以减小刻度标签的字体大小,还可以使轴更宽。我认为您能做的不多。

  • 为了减少空白,请添加例如ax.set_xlim([-0.5,89.5])(或使其依赖于len(h))。
  • 要减小刻度标签的字体大小,请添加extra_axis_parameters={'xticklabel style={font=\\scriptsize}'}的调用tikz_save。(或者\\footnotesize\\tiny
  • 要增加宽度,请添加figurewidth='15cm'的调用tikz_save。(根据需要调整宽度。)

因此,

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import scipy as sp

h = [47]*90
labels = ['a']*90
fig = plt.figure(figsize=(len(labels) * 0.45, 7))
ax = fig.add_subplot(111)
rects1 = ax.bar(sp.arange(len(h)), h, 0.35, color='r')
ax.set_xticks(sp.arange(len(labels)))
ax.set_xlim([-0.5,89.5])
ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")
ax.set_xticklabels(labels,fontsize=14, rotation="vertical")
ax.set_title("Test plot")
from matplotlib2tikz import save as tikz_save
tikz_save("test.tex",figurewidth='15cm',figureheight='6cm',extra_axis_parameters={'xticklabel style={font=\\scriptsize}'})

你得到

LaTeX 输出

相关内容