搜索
 找回密码
 立即注册
查看: 554|回复: 5

[其他] python画图

[复制链接]
  • TA的每日心情
    慵懒
    前天 16:45
  • 签到天数: 305 天

    [LV.8]以坛为家I

    9

    主题

    421

    帖子

    2404

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2404
    发表于 2017-3-18 22:48:13 | 显示全部楼层 |阅读模式
    用python处理数据和画图是比较方便并好看的,可以用numpy、pandas包处理数据,matploblib包画图
    以下是python一段导入数据画图的例子,python2和python3都可以。


    #!/usr/bin/python
    #coding=utf-8
    # matplotlib画图
    import numpy as np
    import matplotlib.pyplot as plt
    # 导入数据,是个三列的数据文件
    data=np.loadtxt("data.txt")
    x=data[:,0]
    y1=data[:,1]
    y2=data[:,2]
    # 绘图句柄,16x10 inches
    plt.figure(figsize=(16,10), dpi=60)
    ax = plt.subplot()
    # 去掉边框
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.spines['bottom'].set_position(('data',0))
    ax.spines['left'].set_position(('data',0))
    # x轴标签放下边
    ax.xaxis.set_ticks_position('bottom')
    # y轴标签放左边
    ax.yaxis.set_ticks_position('left')
    # 画线1
    plt.plot(x, y1, color="blue", linewidth=2.5, linestyle="-", label="Sin(x)")
    # 画线2
    plt.plot(x, y2, color="red", linewidth=2.5, linestyle="-",  label="Cos(x)")
    # x轴边界
    plt.xlim(x.min()*1.1, x.max()*1.1)
    # x轴标签
    plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
               [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
    # y轴边界
    plt.ylim(y1.min()*1.1,y1.max()*1.1)
    # y轴标签
    plt.yticks([-1, +1], [r'$-1$', r'$+1$'])
    # 图例设置
    plt.legend(loc='upper left', fontsize=16, frameon=False)
    # 画网格
    # plt.grid(True)
    # 标注
    t = 2*np.pi/3
    plt.plot([t,t],[0,np.cos(t)],
             color ='blue',  linewidth=1.5, linestyle="--")
    plt.scatter([t,],[np.cos(t),], 50, color ='blue')
    plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
                 xy=(t, np.sin(t)),  xycoords='data',
                 xytext=(+10, +30), textcoords='offset points', fontsize=16,
                 arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

    plt.plot([t,t],[0,np.sin(t)],
             color ='red',  linewidth=1.5, linestyle="--")
    plt.scatter([t,],[np.sin(t),], 50, color ='red')
    plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
                 xy=(t, np.cos(t)),  xycoords='data',
                 xytext=(-90, -50), textcoords='offset points', fontsize=16,
                 arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

    for label in ax.get_xticklabels() + ax.get_yticklabels():
        label.set_fontsize(16)
        label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65 ))
    # 保存图片
    plt.savefig("Figure.png",dpi=60)
    # 查看图片
    plt.show()



    效果如图:

  • TA的每日心情
    慵懒
    2018-6-24 16:07
  • 签到天数: 112 天

    [LV.6]常住居民II

    17

    主题

    174

    帖子

    1344

    积分

    管理员

    学霸

    Rank: 9Rank: 9Rank: 9

    积分
    1344
    发表于 2017-3-18 23:00:23 | 显示全部楼层
    是在Linux写的吗,还加了
    1. #!/usr/bin/python
    复制代码

    ;P;P;P
    [fly]我爱学习,哈哈[/fly]
  • TA的每日心情
    奋斗
    2017-11-1 08:24
  • 签到天数: 252 天

    [LV.8]以坛为家I

    30

    主题

    416

    帖子

    4165

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4165

    灌水之王学生会员

    发表于 2017-3-18 23:00:35 | 显示全部楼层
    请问他和matlab比较,优点和缺点分别是啥
  • TA的每日心情
    慵懒
    2018-6-24 16:07
  • 签到天数: 112 天

    [LV.6]常住居民II

    17

    主题

    174

    帖子

    1344

    积分

    管理员

    学霸

    Rank: 9Rank: 9Rank: 9

    积分
    1344
    发表于 2017-3-18 23:06:17 | 显示全部楼层
    daydayup 发表于 2017-3-18 23:00
    请问他和matlab比较,优点和缺点分别是啥

    优点就是开源,灵活性更强一些吧,免费,这是最主要的。缺点一些专业的工具箱没有,
    [fly]我爱学习,哈哈[/fly]
  • TA的每日心情
    慵懒
    前天 16:45
  • 签到天数: 305 天

    [LV.8]以坛为家I

    9

    主题

    421

    帖子

    2404

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2404
     楼主 发表于 2017-3-18 23:06:43 | 显示全部楼层
    菠菜有料 发表于 2017-3-18 23:00
    是在Linux写的吗,还加了

    这都看出来了
  • TA的每日心情
    慵懒
    前天 16:45
  • 签到天数: 305 天

    [LV.8]以坛为家I

    9

    主题

    421

    帖子

    2404

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2404
     楼主 发表于 2017-3-18 23:13:31 | 显示全部楼层
    daydayup 发表于 2017-3-18 23:00
    请问他和matlab比较,优点和缺点分别是啥

    优点是免费,无版权问题,还很强大,官方文档3000页+,可以方便地用Latex语法标准公式,导出的图清晰无锯齿

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    5