首页
关于
Search
1
怎么快速从GitHub上下载代码
48 阅读
2
GitHub下载加速的有效方法
39 阅读
3
Python中的center()是怎么用的
35 阅读
4
如何在GitHub上下载旧版本
34 阅读
5
怎样删除GitHub存储库
32 阅读
Python
Github
IDC推荐
登录
Search
Xbe
累计撰写
242
篇文章
累计收到
1
条评论
首页
栏目
Python
Github
IDC推荐
页面
关于
搜索到
76
篇与
的结果
2025-03-11
利用Python的Matplotlib库进行数据可视化
Matplotlib是一个Python工具箱,用于科学计算的数据可视化。借助它,Python可以绘制如Matlab和Octave多种多样的数据图形。最初是模仿了Matlab图形命令, 但是与Matlab是相互独立的。通过Matplotlib中简单的接口可以快速的绘制2D图表初试MatplotlibMatplotlib中的pyplot子库提供了和matlab类似的绘图API.代码如下:import matplotlib.pyplot as plt #导入pyplot子库 plt.figure(figsize=(8, 4)) #创建一个绘图对象, 并设置对象的宽度和高度, 如果不创建直接调用plot, Matplotlib会直接创建一个绘图对象 plt.plot([1, 2, 3, 4]) #此处设置y的坐标为[1, 2, 3, 4], 则x的坐标默认为[0, 1, 2, 3]在绘图对象中进行绘图, 可以设置label, color和linewidth关键字参数 plt.ylabel('some numbers') #给y轴添加标签, 给x轴加标签用xlable plt.title("hello"); #给2D图加标题 plt.show() #显示2D图基础绘图绘制折线图与所选点的坐标有关代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] plt.plot(x, y, '-*r') # 虚线, 星点, 红色 plt.xlabel("x-axis") plt.ylabel("y-axis") plt.show()更改线的样式查看plot函数参数设置 多线图只需要在plot函数中传入多对x-y坐标对就能画出多条线代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] z = [1, 2, 3, 4, 5, 6] plt.plot(x, y, '--*r', x, z, '-.+g') plt.xlabel("x-axis") plt.ylabel("y-axis") plt.title("hello world") plt.show()柱状图代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] z = [1, 2, 3, 4, 5, 6] plt.bar(x, y) plt.xlabel("x-axis") plt.ylabel("y-axis") plt.show()子图subplot()函数指明numrows行数, numcols列数, fignum图个数. 图的个数不能超过行数和列数之积代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] z = [1, 2, 3, 4, 5, 6] plt.figure(1) plt.subplot(211) plt.plot(x, y, '-+b') plt.subplot(212) plt.plot(x, z, '-.*r') plt.show()文本添加当需要在图片上调价文本时需要使用text()函数, 还有xlabel(), ylabel(), title()函数text()函数返回matplotlib.text.Text, 函数详细解释代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] plt.plot(x, y, '-.*r') plt.text(1, 2, "I'm a text") //前两个参数表示文本坐标, 第三个参数为要添加的文本 plt.show()图例简介legend()函数实现了图例功能, 他有两个参数, 第一个为样式对象, 第二个为描述字符代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt line_up, = plt.plot([1,2,3], label='Line 2') line_down, = plt.plot([3,2,1], label='Line 1') plt.legend(handles=[line_up, line_down]) plt.show()或者调用set_label()添加图例代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt line, = plt.plot([1, 2, 3]) line.set_label("Label via method") plt.legend() plt.show()同时对多条先添加图例代码如下:# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt line1, = plt.plot([1, 2, 3]) line2, = plt.plot([3, 2, 1], '--b') plt.legend((line1, line2), ('line1', 'line2')) plt.show()
2025年03月11日
4 阅读
0 评论
0 点赞
2025-03-11
Python中的center()是怎么用的
center()方法返回集中在长度宽度的字符串。填充是通过使用specifiedfillchar。默认填充字符是一个空格。语法以下是center()方法的语法:str.center(width[, fillchar])参数width -- 这是字符串的总宽度。fillchar -- 这是填充符。返回值此方法返回集中在长度宽度的字符串。例子下面的示例演示center()方法的使用。#!/usr/bin/python str = "this is string example....wow!!!"; print "str.center(40, 'a') : ", str.center(40, 'a')当我们运行上面的程序,它会产生以下结果:str.center(40, 'a') : aaaathis is string example....wow!!!aaaa
2025年03月11日
35 阅读
0 评论
0 点赞
2025-03-11
怎么通过Python获取文件指定行的内容?
linecache, 可以用它方便地获取某一文件某一行的内容。而且它也被 traceback 模块用来获取相关源码信息来展示。用法很简单:>>> import linecache >>> linecache.getline('/etc/passwd', 4) 'sys:x:3:3:sys:/dev:/bin/sh\n'linecache.getline 第一参数是文件名,第二个参数是行编号。如果文件名不能直接找到的话,会从 sys.path 里找。如果请求的行数超过文件行数,函数不会报错,而是返回''空字符串。如果文件不存在,函数也不会报错,也返回''空字符串。# Python的标准库linecache模块非常适合这个任务 import linecache the_line = linecache.getline('d:/FreakOut.cpp', 222) print (the_line) # linecache读取并缓存文件中所有的文本, # 若文件很大,而只读一行,则效率低下。 # 可显示使用循环, 注意enumerate从0开始计数,而line_number从1开始 def getline(the_file_path, line_number): if line_number < 1: return '' for cur_line_number, line in enumerate(open(the_file_path, 'rU')): if cur_line_number == line_number-1: return line return '' the_line = linecache.getline('d:/FreakOut.cpp', 222) print (the_line)
2025年03月11日
4 阅读
0 评论
0 点赞
2025-03-11
用Python绘制几个动画
Python中的matplotlib从1.1.0版本以后就开始支持绘制动画,Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。这里介绍几种Python使用matplotlib绘制动画的方法。下面是几个的示例:第一个例子使用generator,每隔两秒,就运行函数data_gen:# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig = plt.figure() axes1 = fig.add_subplot(111) line, = axes1.plot(np.random.rand(10)) #因为update的参数是调用函数data_gen, #所以第一个默认参数不能是framenum def update(data): line.set_ydata(data) return line, # 每次生成10个随机数据 def data_gen(): while True: yield np.random.rand(10) ani = animation.FuncAnimation(fig, update, data_gen, interval=2*1000) plt.show()第二个例子使用list(metric),每次从metric中取一行数据作为参数送入update中:import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation start = [1, 0.18, 0.63, 0.29, 0.03, 0.24, 0.86, 0.07, 0.58, 0] metric =[[0.03, 0.86, 0.65, 0.34, 0.34, 0.02, 0.22, 0.74, 0.66, 0.65], [0.43, 0.18, 0.63, 0.29, 0.03, 0.24, 0.86, 0.07, 0.58, 0.55], [0.66, 0.75, 0.01, 0.94, 0.72, 0.77, 0.20, 0.66, 0.81, 0.52] ] fig = plt.figure() window = fig.add_subplot(111) line, = window.plot(start) #如果是参数是list,则默认每次取list中的一个元素, #即metric[0],metric[1],... def update(data): line.set_ydata(data) return line, ani = animation.FuncAnimation(fig, update, metric, interval=2*1000) plt.show()第三个例子:import numpy as np from matplotlib import pyplot as plt from matplotlib import animation # First set up the figure, the axis, and the plot element we want to animate fig = plt.figure() ax = plt.axes(xlim=(0, 2), ylim=(-2, 2)) line, = ax.plot([], [], lw=2) # initialization function: plot the background of each frame def init(): line.set_data([], []) return line, # animation function. This is called sequentially # note: i is framenumber def animate(i): x = np.linspace(0, 2, 1000) y = np.sin(2 * np.pi * (x - 0.01 * i)) line.set_data(x, y) return line, # call the animator. blit=True means only re-draw the parts that have changed. anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=20, blit=True) #anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264']) plt.show()第四个例子:# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation # 每次产生一个新的坐标点 def data_gen(): t = data_gen.t cnt = 0 while cnt < 1000: cnt+=1 t += 0.05 yield t, np.sin(2*np.pi*t) * np.exp(-t/10.) data_gen.t = 0 # 绘图 fig, ax = plt.subplots() line, = ax.plot([], [], lw=2) ax.set_ylim(-1.1, 1.1) ax.set_xlim(0, 5) ax.grid() xdata, ydata = [], [] # 因为run的参数是调用函数data_gen, # 所以第一个参数可以不是framenum:设置line的数据,返回line def run(data): # update the data t,y = data xdata.append(t) ydata.append(y) xmin, xmax = ax.get_xlim() if t >= xmax: ax.set_xlim(xmin, 2*xmax) ax.figure.canvas.draw() line.set_data(xdata, ydata) return line, # 每隔10秒调用函数run,run的参数为函数data_gen, # 表示图形只更新需要绘制的元素 ani = animation.FuncAnimation(fig, run, data_gen, blit=True, interval=10, repeat=False) plt.show()再看下面的例子:# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation #第一个参数必须为framenum def update_line(num, data, line): line.set_data(data[...,:num]) return line, fig1 = plt.figure() data = np.random.rand(2, 15) l, = plt.plot([], [], 'r-') plt.xlim(0, 1) plt.ylim(0, 1) plt.xlabel('x') plt.title('test') #framenum从1增加大25后,返回再次从1增加到25,再返回... line_ani = animation.FuncAnimation(fig1, update_line, 25,fargs=(data, l),interval=50, blit=True) #等同于 #line_ani = animation.FuncAnimation(fig1, update_line, frames=25,fargs=(data, l), # interval=50, blit=True) #忽略frames参数,framenum会从1一直增加下去知道无穷 #由于frame达到25以后,数据不再改变,所以你会发现到达25以后图形不再变化了 #line_ani = animation.FuncAnimation(fig1, update_line, fargs=(data, l), # interval=50, blit=True) plt.show()
2025年03月11日
3 阅读
0 评论
0 点赞
2025-03-11
Python的监控功能示例
Pyinotify是一个Python模块,用来监测文件系统的变化。 Pyinotify依赖于Linux内核的功能—inotify(内核2.6.13合并)。 inotify的是一个事件驱动的通知器,其通知接口通过三个系统调用从内核空间到用户空间。pyinotify结合这些系统调用,并提供一个顶级的抽象和一个通用的方式来处理这些功能。pyinotify 就是通过 调用系统的inotify来实现通知的Inotify 既可以监视文件,也可以监视目录Inotify 使用系统调用而非 SIGIO 来通知文件系统事件。Inotify 可以监视的文件系统事件包括:案例:Python监控目录变化#!/usr/bin/env python #coding=utf-8 import os from pyinotify import WatchManager, Notifier, ProcessEvent, IN_DELETE, IN_CREATE,IN_MODIFY wm = WatchManager() mask = IN_DELETE | IN_CREATE |IN_MODIFY # watched events class PFilePath(ProcessEvent): def process_IN_CREATE(self, event): print "Create file: %s " % os.path.join(event.path, event.name) def process_IN_DELETE(self, event): print "Delete file: %s " % os.path.join(event.path, event.name) def process_IN_MODIFY(self, event): print "Modify file: %s " % os.path.join(event.path, event.name) if __name__ == "__main__": notifier = Notifier(wm, PFilePath()) wdd = wm.add_watch('.', mask, rec=True) while True: try : notifier.process_events() if notifier.check_events(): notifier.read_events() except KeyboardInterrupt: notifier.stop() break
2025年03月11日
5 阅读
0 评论
0 点赞
1
...
4
5
6
...
16