Matplotlib子图谱标题和标题

时间:2017-12-23 16:20:04

标签: python matplotlib subplot

我想

(1)在图的标题和子图的标题之间创建一些距离(目前其中一个子图的标题与图的标题重叠)。

(2)轴的科学概念显示为10的幂而不是1lx,如下图所示。

(3)通过在函数中输入作为参数的刻度数来选择子图的x和y轴上的刻度数。 (在此示例中,y轴的刻度太多)。

(4)在xlab和&之间创建一些距离x值,ylab& y值

代码和图形在下面

from __future__ import division
import math
import numpy as np
import matplotlib.pyplot as plt

def distribution_histogram(data):
    rows_columns = int(math.sqrt(len(data)))
    fig, ax = plt.subplots(nrows=rows_columns, ncols=rows_columns, sharey=True, tight_layout=True)
    axs = ax.flatten()
    subtitle_symbol = r'$\alpha$'
    for i in xrange(len(data)):
        d = data[i]
        bins = len(d) / 10
        axs[i].hist(d, bins=bins)
        subtitle = subtitle_symbol + ' = '+ str(i)
        axs[i].set_title('%s' % subtitle)
        axs[i].ticklabel_format(style='sci', scilimits=(1,1), useOffset=True, useLocale=True, useMathText=True)


    title = 'Distribution of something'
    plt.suptitle('%s' % title)
    plt.tight_layout()
    fig.text(0.5, 0.0, 'xlab', ha='center')
    fig.text(0.0, 0.5, 'ylab', va='center', rotation='vertical')
    plt.savefig('%s.png' % 'distribution_file_name', bbox_inches='tight')


data = []
a = range(1,11)
a = a * 100
for i in xrange(9):
    d = np.random.uniform(0,a[i],100)
    data.append(d)

distribution_histogram(data)

enter image description here

0 个答案:

没有答案