matplotlib学习记录(一)

    xiaoxiao2021-04-14  31

    先参照《利用Python进行数据分析》的内容过一遍matplotlib库基本api的操作,后续的学习添加一些fashion的东西,备忘用。 首先,导库 import matplotlib.pyplot as plt,from numpy.random import randn(用于产生随机数)

    Figure画布Subplot子图 调整subplot周围的间距 颜色标记和线型刻度标签和图例 设置标题轴标签刻度刻度标签添加图例 注解图表保存到文件

    Figure(画布)&&Subplot(子图)

    1.创建画布对象Figure:

    fig = plt.figure()

    2.创建时设定纵横比:

    fig = plt.figure(figsize=(16, 8))

    3.获取当前Figure:

    fig = plt.gcf()

    4.在画布上创建子图(至少一张):

    ax1 = fig.add_subplot(2, 2, 1) ax2 = fig.add_subplot(2, 2, 2) ax3 = fig.add_subplot(2, 2, 3)

    (把画布切分成2行2列,在1,2,3位置上创建子图)

    5.当前子图上画图

    plt.plot(randn(50).cumsum(), 'k--')

    6.指定子图上画图

    _ = ax1.hist(randn(100), bins=20, color=''k, alpha=0.3) ax2.scatter(np.arange(30), np.arange(30) + 3*randn(30))

    7.同时创建画布和子图

    In[65]: fig, axes = plt.subplots(2, 3) In[66]: axes Out[66]: array([[<matplotlib.axes._subplots.AxesSubplot object at 0x00000000093FC748>, <matplotlib.axes._subplots.AxesSubplot object at 0x0000000009DB9CF8>, <matplotlib.axes._subplots.AxesSubplot object at 0x0000000009E24E48>], [<matplotlib.axes._subplots.AxesSubplot object at 0x0000000009E7D748>, <matplotlib.axes._subplots.AxesSubplot object at 0x0000000009EE4C88>, <matplotlib.axes._subplots.AxesSubplot object at 0x0000000009F3E4A8>]], dtype=object)

    调整subplot周围的间距

    subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

    wspace和hspace控制宽度和高度百分比,可用作subplot的间距。

    fig, axes= plt.subplots(2, 2, sharex=True, sharey=True) for i in range(2): for j in range(2): axes[i, j].hist(randn(500), bins=50, color='k', alpha=0.5) plt.subplots_adjust(wspace=0, hspace=0)

    颜色、标记和线型

    plot函数接受X,Y轴坐标,颜色(可指定RGB值,如’#CECECE’),线型,标记。

    ax.plot(x, y, 'ko--')

    等同于:

    ax.plot (x, y, color='k', linesytle='--', marker='o')

    刻度、标签和图例

    设置标题、轴标签、刻度、刻度标签

    刻度、刻度标签 调用时不带参数,返回参数值。例,plt.xlim()返回当前X轴绘图范围 调用时带参数,则设置参数值。例,plt.xlim([0, 10])将X轴范围设为0到10 对于子图,函数为ax.get_xlim和ax.set_xlim set_xticks 决定将刻度放在什么位置,set_xticklabels 设置刻度标签为 ticks = ax.set_xticks([0 ,250, 500, 750, 1000]) labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'], rotation=30, fontsize='small')

    轴标签

    ax.set_xlabel('Stages')

    标题

    ax.set_title('My first matplotlib plot')

    添加图例

    在添加subplot的时候传入label参数:

    ax.plot(x, y, 'k', label='one')

    用ax.legend() 或plt.legend() 创建图例:

    ax.legend(loc='best')

    注解

    注解可以通过text、arrow和annotate等函数添加,可绘制在图标的指定坐标(x,y),还可以添加自定义格式:

    ax.text(x, y, 'Hello world!', family='monospace', fontsize=10)

    更多内容见matplotlib库。

    图表保存到文件

    想存为什么格式改扩展名就行了:

    plt.savefig('figpath.svg')

    最重要的两个参数是dpi(控制”每英寸点数“分辨率)和bbox_inches(可剪除当前图表周围的空白部分),得到一张带有最小白边且分辨为400DPI的PNG图片:

    plt.savefig('figpath.png', dpi=400, bbox_inches='tight')

    savefig可以写入任何文件类型的对象,比如StringIO:

    from io import StringIO buffer = StringIO() plt.savefig(buffer) plot_data = buffer.getvalue()

    这在Web上提供动态生成的图片很实用。

    转载请注明原文地址: https://ju.6miu.com/read-669627.html

    最新回复(0)