• Python画图主要用到matplotlib这个库。Matplotlib 是一个 Python 的 2D绘图库，它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。这里有一本电子书供大家参考：《Python图表绘制：matplotlib绘图库...
Python画图主要用到matplotlib这个库。Matplotlib 是一个 Python 的 2D绘图库，它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
这里有一本电子书供大家参考：《Python图表绘制：matplotlib绘图库入门》
具体来说是pylab和pyplot这两个子库。这两个库可以满足基本的画图需求，而条形图，散点图等特殊图，下面再单独具体介绍。
首先给出pylab神器镇文：pylab.rcParams.update(params)。这个函数几乎可以调节图的一切属性，包括但不限于：坐标范围，axes标签字号大小，xtick,ytick标签字号，图线宽，legend字号等。
具体参数参看官方文档：http://matplotlib.org/users/customizing.html
首先给出一个Python3画图的例子。
import matplotlib.pyplot as plt
import matplotlib.pylab as pylab
import scipy.io
import numpy as np
params={
'axes.labelsize': '35',
'xtick.labelsize':'27',
'ytick.labelsize':'27',
'lines.linewidth':2 ,
'legend.fontsize': '27',
'figure.figsize' : '12, 9' # set figure size
}
pylab.rcParams.update(params) #set figure parameter
#line_styles=['ro-','b^-','gs-','ro--','b^--','gs--'] #set line style
#We give the coordinate date directly to give an example.
x1 = [-20,-15,-10,-5,0,0,5,10,15,20]
y1 = [0,0.04,0.1,0.21,0.39,0.74,0.78,0.80,0.82,0.85]
y2 = [0,0.014,0.03,0.16,0.37,0.78,0.81,0.83,0.86,0.92]
y3 = [0,0.001,0.02,0.14,0.34,0.77,0.82,0.85,0.90,0.96]
y4 = [0,0,0.02,0.12,0.32,0.77,0.83,0.87,0.93,0.98]
y5 = [0,0,0.02,0.11,0.32,0.77,0.82,0.90,0.95,1]
plt.plot(x1,y1,'bo-',label='m=2, p=10%',markersize=20) # in 'bo-', b is blue, o is O marker, - is solid line and so on
plt.plot(x1,y2,'gv-',label='m=4, p=10%',markersize=20)
plt.plot(x1,y3,'ys-',label='m=6, p=10%',markersize=20)
plt.plot(x1,y4,'ch-',label='m=8, p=10%',markersize=20)
plt.plot(x1,y5,'mD-',label='m=10, p=10%',markersize=20)
fig1 = plt.figure(1)
axes = plt.subplot(111)
#axes = plt.gca()
axes.set_yticks([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0])
plt.legend(loc="lower right") #set legend location
plt.ylabel('Percentage') # set ystick label
plt.xlabel('Difference') # set xstck label
plt.savefig('D:\commonNeighbors_CDF_snapshots.eps',dpi = 1000,bbox_inches='tight')
plt.show()
显示效果如下：
代码没什么好说的，这里只说一下plt.subplot(111)这个函数。
plt.subplot(111)和plt.subplot(1,1,1)是等价的。意思是将区域分成1行1列，当前画的是第一个图（排序由行至列）。
plt.subplot(211)意思就是将区域分成2行1列，当前画的是第一个图（第一行，第一列）。以此类推，只要不超过10，逗号就可省去。
python画条形图。代码如下。
import scipy.io
import numpy as np
import matplotlib.pylab as pylab
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
params={
'axes.labelsize': '35',
'xtick.labelsize':'27',
'ytick.labelsize':'27',
'lines.linewidth':2 ,
'legend.fontsize': '27',
'figure.figsize' : '24, 9'
}
pylab.rcParams.update(params)
y1 = [9.79,7.25,7.24,4.78,4.20]
y2 = [5.88,4.55,4.25,3.78,3.92]
y3 = [4.69,4.04,3.84,3.85,4.0]
y4 = [4.45,3.96,3.82,3.80,3.79]
y5 = [3.82,3.89,3.89,3.78,3.77]
ind = np.arange(5) # the x locations for the groups
width = 0.15
plt.bar(ind,y1,width,color = 'blue',label = 'm=2')
plt.bar(ind+width,y2,width,color = 'g',label = 'm=4') # ind+width adjusts the left start location of the bar.
plt.bar(ind+2*width,y3,width,color = 'c',label = 'm=6')
plt.bar(ind+3*width,y4,width,color = 'r',label = 'm=8')
plt.bar(ind+4*width,y5,width,color = 'm',label = 'm=10')
plt.xticks(np.arange(5) + 2.5*width, ('10%','15%','20%','25%','30%'))
plt.xlabel('Sample percentage')
plt.ylabel('Error rate')
fmt = '%.0f%%' # Format you want the ticks, e.g. '40%'
xticks = mtick.FormatStrFormatter(fmt)
# Set the formatter
axes = plt.gca() # get current axes
axes.yaxis.set_major_formatter(xticks) # set % format to ystick.
axes.grid(True)
plt.legend(loc="upper right")
plt.savefig('D:\errorRate.eps', format='eps',dpi = 1000,bbox_inches='tight')
plt.show()
结果如下：
画散点图，主要是scatter这个函数，其他类似。
画网络图，要用到networkx这个库，下面给出一个实例：
import networkx as nx
import pylab as plt
g = nx.Graph()
fixed_pos = {1:(1,1),2:(0.7,2.2),3:(0,1.8),4:(1.6,2.3),5:(2,0.8),6:(-0.6,-0.6),7:(-1.3,0.8), 8:(-1.5,-1), 9:(0.5,-1.5), 10:(1.7,-0.8), 11:(1.5,-2.3)} #set fixed layout location
#pos=nx.spring_layout(g) # or you can use other layout set in the module
nx.draw_networkx_nodes(g,pos = fixed_pos,nodelist=[1,2,3,4,5],
node_color = 'g',node_size = 600)
nx.draw_networkx_edges(g,pos = fixed_pos,edgelist=[(1,2),(1,3),(1,4),(1,5),(1,9)],edge_color='g',width = [4.0,4.0,4.0,4.0,4.0],label = [1,2,3,4,5],node_size = 600)
nx.draw_networkx_nodes(g,pos = fixed_pos,nodelist=[6,7,8],
node_color = 'r',node_size = 600)
nx.draw_networkx_edges(g,pos = fixed_pos,edgelist=[(6,7),(6,8),(1,6)],width = [4.0,4.0,4.0],edge_color='r',node_size = 600)
nx.draw_networkx_nodes(g,pos = fixed_pos,nodelist=[9,10,11],
node_color = 'b',node_size = 600)
nx.draw_networkx_edges(g,pos = fixed_pos,edgelist=[(6,9),(9,10),(9,11)],width = [4.0,4.0,4.0],edge_color='b',node_size = 600)
plt.text(fixed_pos[1][0],fixed_pos[1][1]+0.2, s = '1',fontsize = 40)
plt.text(fixed_pos[2][0],fixed_pos[2][1]+0.2, s = '2',fontsize = 40)
plt.text(fixed_pos[3][0],fixed_pos[3][1]+0.2, s = '3',fontsize = 40)
plt.text(fixed_pos[4][0],fixed_pos[4][1]+0.2, s = '4',fontsize = 40)
plt.text(fixed_pos[5][0],fixed_pos[5][1]+0.2, s = '5',fontsize = 40)
plt.text(fixed_pos[6][0],fixed_pos[6][1]+0.2, s = '6',fontsize = 40)
plt.text(fixed_pos[7][0],fixed_pos[7][1]+0.2, s = '7',fontsize = 40)
plt.text(fixed_pos[8][0],fixed_pos[8][1]+0.2, s = '8',fontsize = 40)
plt.text(fixed_pos[9][0],fixed_pos[9][1]+0.2, s = '9',fontsize = 40)
plt.text(fixed_pos[10][0],fixed_pos[10][1]+0.2, s = '10',fontsize = 40)
plt.text(fixed_pos[11][0],fixed_pos[11][1]+0.2, s = '11',fontsize = 40)
plt.show()
结果如下：
总结
以上就是本文关于Python科学画图代码分享的全部内容，希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题，如有不足之处，欢迎留言指出。感谢朋友们对本站的支持！
展开全文
• [python]代码库#使用turtle库绘制图形#画出 NUESOFT#导入turtle库 使用import + 模块名 as 相当于起一个别名import turtle as t#设置画布大小以及颜色颜色# t.screensize(canvwidth=800, canvheight=600, bg='white'...
[python]代码库#使用turtle库绘制图形
#画出 NUESOFT
#导入turtle库 使用import + 模块名 as 相当于起一个别名
import turtle as t
#设置画布大小以及颜色颜色
# t.screensize(canvwidth=800, canvheight=600, bg='white')
#设置画笔的大小 10 像素（10代表）
t.pensize(9)
#画笔颜色,第二个参数代表填充颜色 color('red','pink')
t.color('blue')
#抬笔
t.penup()
#指定一个坐标点
t.goto(-350,0)
#落笔
t.pendown()
t.left(90)
t.forward(80)
#right的简写rt
t.right(145)
#forward的简写fd
t.fd(100)
#left的简写lt
t.lt(145)
t.fd(80)
#抬笔
t.penup()
#指定一个坐标点
t.goto(-245,30)
#落笔
t.pendown()
# 画e
t.rt(90)
t.fd(50)
t.lt(90)
t.circle(25,325)
t.lt(35)
#抬笔
t.penup()
#指定一个坐标点
t.goto(-140,50)
#落笔
t.pendown()
# 画u
t.lt(180)
t.fd(25)
t.circle(25,180)
t.fd(25)
#抬笔
t.penup()
#指定一个坐标点
t.goto(0,36)
#落笔
t.pendown()
#画S
t.circle(12.5,270)
#默认半径为正数时，是以左侧为圆心，半径为负是以右边为圆心
t.circle(-12.5,270)
#抬笔
t.penup()
#指定一个坐标点
t.goto(55,25)
#落笔
t.pendown()
# 画o
t.circle(-25)
#抬笔
t.penup()
#指定一个坐标点
t.goto(200,38)
#落笔
t.pendown()
# 画f
t.lt(30)
t.circle(20,135)
t.lt(15)
t.fd(37)
t.penup()
t.goto(155,20)
t.pendown()
t.lt(90)
t.fd(45)
#抬笔
t.penup()
#指定一个坐标点
t.goto(260,50)
#落笔
t.pendown()
# 画t
t.rt(90)
t.fd(35)
t.circle(20,135)
t.penup()
t.goto(245,32)
t.pendown()
t.rt(45)
t.fd(40)
t.done()
[代码运行效果截图]


展开全文
• 【实例简介】【实例截图】【核心代码】import turtle as timport timedef drawgap():t.pu()t.fd(5)def drawline(draw):drawgap()t.pd() if draw else t.pu()t.fd(40)drawgap()t.right(90)def drawdigit(digit):...
【实例简介】
【实例截图】

【核心代码】
import turtle as t
import time
def drawgap():
t.pu()
t.fd(5)
def drawline(draw):
drawgap()
t.pd() if draw else t.pu()
t.fd(40)
drawgap()
t.right(90)
def drawdigit(digit):
drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,2,6,8] else drawline(False)
t.left(90)
drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)
drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)
t.right(180)
t.pu()
t.fd(40)
def drawdate(date):
for i in date:
if i =='-':
t.write('年',font=("Arial",18,"normal"))
t.pencolor("red")
t.fd(80)
elif i=="=":
t.write('月',font=("Arial",18,"normal"))
t.pencolor("blue")
t.fd(80)
elif i==" ":
t.write("日",font=("Arial",18,"normal"))
else:
drawdigit(eval(i))
def main():
t.setup(1000,350,200,200)
t.speed(0)
t.pu()
t.fd(-450)
t.pensize(5)
t.pencolor("pink")
drawdate(time.strftime('%H-%M=%S ',time.gmtime()))
t.hideturtle()
t.done()
main()
展开全文
• 概述虽然Python的强项在人工智能，数据处理方面，但是对于日常简单的应用，Python也提供了非常友好的支持（如：Tkinter），本文主要一个简单的画图小软件，简述Python在GUI（图形用户界面）方面的应用，仅供学习分享...
概述
虽然Python的强项在人工智能，数据处理方面，但是对于日常简单的应用，Python也提供了非常友好的支持（如：Tkinter），本文主要一个简单的画图小软件，简述Python在GUI（图形用户界面）方面的应用，仅供学习分享使用，如有不足之处，还请指正。
设计思路
页面布局：主要分为上下两部分 a. 绘图区域，本例以Canvas实现 b. 下部：功能区，由按钮实现
事件监听：通过给功能按钮绑定事件，来实现不同的功能，如：绘线，绘矩形等功能。
绘图区域：监听鼠标左键的按下（开始绘图）和抬起（停止绘图），再根据不同的按钮实现绘制不同的图形。
涉及知识点
开发工具：Python3.7 ， PyCharm2019
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
Canvas控件提供了一个自定义的绘图区域，可以通过不同的函数来绘制不同的图形。
绘制直线 create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)
绘制带箭头的直线 create_line(self.x, self.y, event.x, event.y, arrow=LAST, fill=self.fgcolor)
绘制矩形 create_rectangle(self.x, self.y, event.x, event.y, outline=self.fgcolor)
绘制曲线，是通过绘制不同的点来实现的
Button 按钮控件，通过绑定（bind）不同的监听事件来实现不同的功能。
name属性设置按钮的名称，
text属性设置按钮的显示文本。
bind 绑定事件
示例效果图
本例主要实现绘制直线，带箭头的直线，曲线，矩形，清除等功能，如下所示：

核心代码
在本例中，主要功能如下：
创建画板
1
2
3
"""创建画图区域"""
创建按钮
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建按钮
self.btn_start= Button(self, name='start', text='开始')
self.btn_pen= Button(self, name='pen', text='画笔')
self.btn_rect= Button(self, name='rect', text='矩形')
self.btn_clear= Button(self, name='clear', text='清屏')
self.btn_erasor= Button(self, name='erasor', text='橡皮擦')
self.btn_line= Button(self, name='line', text='直线')
self.btn_line_arrow= Button(self, name='line_arrow', text='箭头直线')
self.btn_color= Button(self, name='color', text='颜色')
绑定事件
1
2
3
4
5
6
7
8
# 绑定事件
self.btn_line.bind('',self.eventManager)# 点击按钮事件
self.btn_line_arrow.bind('',self.eventManager)# 点击按钮事件
self.btn_rect.bind('',self.eventManager)# 点击按钮事件
self.btn_pen.bind('',self.eventManager)# 点击按钮事件
self.btn_erasor.bind('',self.eventManager)# 点击按钮事件
self.btn_clear.bind('',self.eventManager)# 点击按钮事件
self.btn_color.bind('',self.eventManager)# 点击按钮事件
功能实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def eventManager(self, event):
name= event.widget.winfo_name()
print(name)
self.start_flag= True
if name== 'line':
# 左键拖动
elif name== 'line_arrow':
elif name== 'rect':
elif name== 'pen':
elif name== 'erasor':
elif name== 'clear':
elif name== 'color':
print(c)# c的值 ((128.5, 255.99609375, 0.0), '#80ff00')
self.fgcolor= c[1]
def startDraw(self, event):
if self.start_flag:
self.start_flag= False
self.x= event.x
self.y= event.y
def stopDraw(self, event):
self.start_flag= True
self.lastdraw= 0
def myline(self, event):
self.startDraw(event)
def myline_arrow(self, event):
self.startDraw(event)
self.lastdraw= self.drawpad.create_line(self.x,self.y, event.x, event.y, arrow=LAST, fill=self.fgcolor)
def myrect(self, event):
self.startDraw(event)
def mypen(self, event):
self.startDraw(event)
print('self.x=',self.x,',self.y=',self.y)
self.x= event.x
self.y= event.y
def myerasor(self, event):
self.startDraw(event)
print('self.x=',self.x,',self.y=',self.y)
self.drawpad.create_rectangle(event.x- 3, event.y- 3, event.x+ 3, event.y+ 3, fill=bgcolor)
self.x= event.x
self.y= event.y
快捷键的实现
1
2
3
4
5
self.master.bind('',self.hotKey)# 绑定快捷键
self.master.bind('',self.hotKey)# 绑定快捷键
self.master.bind('',self.hotKey)# 绑定快捷键
self.master.bind('',self.hotKey)# 绑定快捷键
快捷键功能实现
1
2
3
4
5
6
7
8
9
10
def hotKey(self, event):
c= event.char
if c== 'r':
self.fgcolor= 'red'
elif c== 'g':
self.fgcolor= 'green'
elif c== 'b':
self.fgcolor= 'blue'
elif c== 'y':
self.fgcolor= 'yellow'
有需要的朋友，可点击链接下载整体代码，如下所示：
备注
不积跬步，无以至千里；不积小流，无以成江海；锲而舍之，朽木不折，锲而不舍，金石可镂。
到此这篇关于 Python实现画图软件功能方法详解的文章就介绍到这了,更多相关 Python实现画图软件功能内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家！
原文链接：https://www.cnblogs.com/hsiang/p/13381284.html
展开全文
• 翻译 | 李振 于志鹏 整理 | 凡江大多数人不会花大量时间去学matplotlib库，仍然可以实现绘图需求，因为已经有人在 stackoverflow、github 等开源平台上提供了绝大多数画图问题的解决方案。我们通常会使用 ...
• 利用python读取excel表格数据并且画折线图这个基础的入门级代码，具有很好的参考学习价值，用到python的两个库这两个库要自己去下载，代码能运行
• 环境：pyecharts库，echarts-countries-pypkg，echarts-china-provinces-pypkg，echarts-china-cities-pypkg数据：2018年4月16号的全国各地最高最低和天气类型的数据——2018-4-16.json（爬虫爬的）代码：天气数据...
• 原标题：纯干货：手把手教你用Python做数据可视化（附代码）导读：制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一。可视化可能是探索过程的一部分，例如，帮助识别异常值或所需的数据转换，或者为...
• 主要介绍了Python科学画图代码分享，涉及matplotlib库的简单介绍，分享了matplotlib绘图库书籍的下载地址，具有一定参考价值，需要的朋友可以了解下。
• Python画图主要用到matplotlib这个库。Matplotlib 是一个 Python 的 2D绘图库，它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。具体来说是pylab和pyplot这两个子库。这两个库可以满足基本的画图...
• 本文实例为大家分享了python绘制彩虹图的具体代码，供大家参考，具体内容如下from turtle import *#控制彩虹路径def path(pen, r, g, b):pen.penup()pen.goto(-400, -300)pen.pendown()pen.pencolor(r, g, b)pen....
• 掌握库的引入方法，熟悉turtle库的基本用法； 熟悉三种数字类型的表示、转换，掌握type()函数用法； 掌握数字类型的运算符与内置函数操作； 熟悉math库的引导与内置函数的使用；编写简单实例。
• 本文作者用简单明了的语言解释了三日k线的交易原则，也分享了如何用python绘制k线图的方法和代码。 关于日本k线交易据说日本人在十七世纪就已经运用技术分析的方法进行大米交易，一位名叫本间宗久的坂田大米贸易商...
• ## python画图小代码

万次阅读 多人点赞 2020-09-07 19:56:29
奥运五环 import turtle t = turtle.Pen() t.speed(1) # 画笔颜色为蓝色 t.pencolor("blue") # 画笔宽度为8 t.pensize(8) # 画半径为60的圆,篮圈 t.circle(60) # 第一个环 t.penup() t.goto(100,0) ...t.pen
• python简单实现一个图形的绘制，可以自己设置图形的大小和尺寸
• 画一个红色的五角星from turtle import *color('red','red')begin_fill()for i in range(5):fd(200)rt(144)end_fill()done()效果图：画一条蟒蛇#PythonDraw.pyimportturtle#turtle.setup(650,350,200,200)turtle....
• 在介绍Python画图模板之前，先买个和大家卖个官司，首先介绍一下Python画图常用库matplotlib的参数，如果只介绍模板，如果你想改一些参数，首先要知道各个参数的含义，那么就可以去这个网址查找了： matplotlib官方...
• https://cloud.tencent.com/developer/article/1540069
• 本文实例为大家分享了python绘制彩虹图的具体代码，供大家参考，具体内容如下代码：from turtle import *#控制彩虹路径def path(pen, r, g, b):pen.penup()pen.goto(-400, -300)pen.pendown()pen.pencolor(r, g, b)...
• python turtle库绘制带小心心和文字的的单身狗的完整代码。文字可调整，参数可修改，编程入门培养兴趣的好帮手，表白利器。
• 本文作者用简单明了的语言解释了三日k线的交易原则，也分享了如何用python绘制k线图的方法和代码。 关于日本k线交易据说日本人在十七世纪就已经运用技术分析的方法进行大米交易，一位名叫本间宗久的坂田大米贸易商...
• 没错，Python画图用的就是turtle这个库，这个库非常强大，简直就是神笔马良啊，可以画出各种你想要画的东西。 所以下面一起来看一些效果图和视频吧 效果图 两个小孩 皮卡丘 小猪佩奇 小熊猫 小狗 ...
• 自己网上没事干学的小程序，希望大家学习，一起来学pythyon
• 玫瑰花 import turtle # 设置初始位置 turtle.penup() # 提起画笔 turtle.left(90) # 逆时针旋转九十度 turtle.fd(200) # 向前移动一段距离 fd=forward turtle.pendown() # 放下画笔移动画笔开始绘制 ...

...

python 订阅