• Python_14-绘图


     1.1      简介... 1

     1.2      应用实例... 2

     1.2.1       实例1. 2

     1.2.2       实例2. 2

     1.3      参考资料... 4

     

     

     

     

    1.1   简介

     matplotlib python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

     

    http://matplotlib.org/

    http://my.oschina.net/bery/blog/203595

     

    需要安装(可以从csdn下载Python2.7版本的几个包)

    dateutil

    pyparsing

    安装问题:

    >>>

    Traceback (most recent call last):

      File "D:/Python279/tdrawf1.py", line 1, in <module>

        from matplotlib.matlab import *

      File "D:Python279libsite-packagesmatplotlib\__init__.py", line 105, in <module>

        import six

    ImportError: No module named six

    办法:

    Copy six.py and six.pyc to Lib.

     

    帮助:

    http://labix.org/python-dateutil

     

    1.2   应用实例

    1.2.1   实例1

    import os

    import math

    import pylab

    y_values = []

    x_values = []

    num = 0.0

    #collect both num and the sine of num in a list

    while num < math.pi * 4:

        y_values.append(math.sin(num))

        x_values.append(num)

        num += 0.1

     

    pylab.plot(x_values,y_values,'r*')

    pylab.show()

     

    1.2.2   实例

    http://blog.csdn.net/xiaowei_cqu/article/details/8272367

     

    """

    Thanks to Tony Yu <tsyu80@gmail.com> for the logo design

    """

     

    import numpy as np

    import matplotlib as mpl

    import matplotlib.pyplot as plt

    import matplotlib.cm as cm

     

    mpl.rcParams['xtick.labelsize'] = 10

    mpl.rcParams['ytick.labelsize'] = 12

    mpl.rcParams['axes.edgecolor'] = 'gray'

     

     

    axalpha = 0.05

    #figcolor = '#EFEFEF'

    figcolor = 'white'

    dpi = 80

    fig = plt.figure(figsize=(6, 1.1),dpi=dpi)

    fig.figurePatch.set_edgecolor(figcolor)

    fig.figurePatch.set_facecolor(figcolor)

     

     

    def add_math_background():

        ax = fig.add_axes([0., 0., 1., 1.])

     

        text = []

        text.append((r"$W^{3eta}_{delta_1 ho_1 sigma_2} = U^{3eta}_{delta_1 ho_1} + frac{1}{8 pi 2} int^{alpha_2}_{alpha_2} d alpha^prime_2 left[frac{ U^{2eta}_{delta_1 ho_1} - alpha^prime_2U^{1eta}_{ ho_1 sigma_2} }{U^{0eta}_{ ho_1 sigma_2}} ight]$", (0.7, 0.2), 20))

        text.append((r"$frac{d ho}{d t} + ho vec{v}cdot ablavec{v} = - abla p + mu abla^2 vec{v} + ho vec{g}$",

                    (0.35, 0.9), 20))

        text.append((r"$int_{-infty}^infty e^{-x^2}dx=sqrt{pi}$",

                    (0.15, 0.3), 25))

        #text.append((r"$E = mc^2 = sqrt{{m_0}^2c^4 + p^2c^2}$",

        #            (0.7, 0.42), 30))

        text.append((r"$F_G = Gfrac{m_1m_2}{r^2}$",

                    (0.85, 0.7), 30))

        for eq, (x, y), size in text:

            ax.text(x, y, eq, ha='center', va='center', color="#11557c", alpha=0.25,

                    transform=ax.transAxes, fontsize=size)

        ax.set_axis_off()

        return ax

     

    def add_matplotlib_text(ax):

        ax.text(0.95, 0.5, 'matplotlib', color='#11557c', fontsize=65,

                   ha='right', va='center', alpha=1.0, transform=ax.transAxes)

     

    def add_polar_bar():

        ax = fig.add_axes([0.025, 0.075, 0.2, 0.85], polar=True)

     

     

        ax.axesPatch.set_alpha(axalpha)

        ax.set_axisbelow(True)

        N = 7

        arc = 2. * np.pi

        theta = np.arange(0.0, arc, arc/N)

        radii = 10 * np.array([0.2, 0.6, 0.8, 0.7, 0.4, 0.5, 0.8])

        width = np.pi / 4 * np.array([0.4, 0.4, 0.6, 0.8, 0.2, 0.5, 0.3])

        bars = ax.bar(theta, radii, width=width, bottom=0.0)

        for r, bar in zip(radii, bars):

            bar.set_facecolor(cm.jet(r/10.))

            bar.set_alpha(0.6)

     

        for label in ax.get_xticklabels() + ax.get_yticklabels():

            label.set_visible(False)

     

        for line in ax.get_ygridlines() + ax.get_xgridlines():

            line.set_lw(0.8)

            line.set_alpha(0.9)

            line.set_ls('-')

            line.set_color('0.5')

     

        ax.set_yticks(np.arange(1, 9, 2))

        ax.set_rmax(9)

     

    if __name__ == '__main__':

        main_axes = add_math_background()

        add_polar_bar()

        add_matplotlib_text(main_axes)

        plt.show()

     

    1.3   三维绘图

    https://pypi.python.org/pypi/mayavi

    安装:

    Prerequisites

    You must have the following libraries installed before installing the Mayavi project:

    ·         Numpy version 1.1.1 or later

    ·         VTK version 5.0 or later

    ·         wxPython version 2.8 or later

    ·         configobj

     

    http://www.vtk.org/VTK/resources/software.html

     

     

    1.4   参考资料

     

     

     

    http://www.ibm.com/developerworks/cn/linux/l-matplotlib/index.html

    http://www.cnblogs.com/petali/archive/2009/07/30/1417410.html

    非常好的资料:2.7下运行有错误提示

    http://www.ibm.com/developerworks/cn/linux/l-matplotlib/

     

  • 相关阅读:
    3.请问配置JDK时环境变量path和JAVA_HOME的作用是什么?
    2.请尝试安装和配置JDK,并给出安装、配置JDK的步骤。
    1.Java为什么能跨平台运行?请简述原理
    字符集
    Java程序输出打字
    <marquee>,视频和音频的插入,正则表达式
    windows.document对象
    while;do while;switch;break;continue
    循环语句 ,for语句
    PHP判断一个文件是否能够被打开
  • 原文地址:https://www.cnblogs.com/jiu0821/p/5091726.html
Copyright © 2020-2023  润新知