㈠ python语言画图
1)首先Python画图与WING IDE无关,最简单的是使用Tkinter画图
2)画出单词有很多方法,最笨的是用划线方式一笔一笔的画。其次是直接输出文本,但意义不大。另外一种方法是调用图片,你可以在图片上任意画好东西后显示出来。
3)代码示例:(这个例子就画了个简单的字母P)
from Tkinter import *
root=Tk()
root.title('Drawing Example')
canvas=Canvas(root,width=200,height=160,bg='white')
canvas.create_line(10,10,100,70)
canvas.create_line(10,10,40,10)
canvas.create_line(40,10,40,40)
canvas.create_line(10,40,40,40)
canvas.pack()
root.mainloop()
㈡ python导入csv并利用其中数据画图
昨天手机看的,没看到你发的表格,抱歉。给你写个简单的。
import pandas
import matplotlib.pyplot as plt
# sep这是是分割符,具体看你自己的文件分割是用什么,usecoles是取a,b,c三列
a_b_c = pandas.read_csv("这里写你的文件地址", sep="\t", usecols=[1,2,3])
# 取c在3000到10000的行
a = a_b_c[(a_b_c['c']>=3000) & (a_b_c['c']<=10000)]
a_col = a["a"]
b_col = a["b"]
plt.scatter(a_col, b_col)
plt.show()
流程大概是这样,具体需要细化的地方看官方文档或者网络查询。
㈢ 用Python画图
今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了。
它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
turtle.forward(200)
turtle.left(170)
第一个命令是移动200个单位并画出来轨迹
第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度
然后呢? 循环重复就画出来这个图了
好玩吧。
有需要仔细研究的可以看下这篇文章 https://blog.csdn.net/zengxiantao1994/article/details/76588580 ,这个牛人最后用这个库画个移动的钟表,太赞了。
Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了。
Matplotlib是python最着名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。
使用起来也挺简单,
首先import matplotlib.pyplot as plt 导入画图的图。
然后给定x和y,用这个命令plt.plot(x, y)就能画图了,接着用plt.show()就可以把图形展示出来。
接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在 https://blog.csdn.net/guoziqing506/article/details/78975150 这篇文章里介绍的很详细。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
假设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢,我在上篇文章 https://www.jianshu.com/p/d4013d8a73de 中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛
plt.plot(df['time'], df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊, 原来两个Y轴不一致,显示出来太怪了,需要用多Y轴,问题来了。
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig = plt.figure() # 多图
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price") # 绘制第一个图比特币价格
ax1.set_ylabel('BTC price') # 加上标签
# 第二个直接对称就行了
ax2 = ax1.twinx()# 在右边增加一个Y轴
ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999") # 绘制第二个图Ahr999指数,红色
ax2.set_ylim([0, 50])# 设定第二个Y轴范围
ax2.set_ylabel('ahr999')
plt.grid(color="k", linestyle=":")# 网格
fig.legend(loc="center")#图例
plt.show()
跑起来看看效果,虽然丑了点,但终于跑通了。
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。
㈣ python绘图工具turtle库的使用
#PythonDraw.py
import turtle #导入turtle库
turtle.setup(650, 350, 200, 200) #设置画布大小和位置
turtle.penup() #抬起画笔
turtle.fd(-250) #画笔在空中向前飞行-250个像素
turtle.pendown() #画笔落下
turtle.pensize(25) #画笔宽度25个像素
turtle.pencolor("purple") #画笔颜色为紫色
turtle.seth(-40) #海龟方向香油转动45度,但是不行进
for i in range(4): #这里是一个循环
turtle.circle(40, 80) #绕着左边40远处的点向转80度
turtle.circle(-40, 80) #绕着右边40远处的点向转80度
turtle.circle(40, 80/2) #绕着左边40远处的点向转80/2度
turtle.fd(40) #向前40个像素
turtle.circle(16, 180) #绕着左边16远处的点向转180度
turtle.fd(40 * 2/3) #向前40*2/3个像素
turtle.done() #运行完不退出
1.turtle库基本介绍
有一只海龟,其在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形, 海龟由程序控制,可以变换颜色、改变宽度等。
2.turtle库绘图窗体布局
不设置位置,默认在屏幕中心显示
3.turtle库空间坐标体系
绝对坐标,可以使用goto函数到达指定位置
例如:
4.turtle库角度坐标体系
5.RGB色彩体系
㈤ 怎样用python画图,为什么代码写好运行时错误
python绘图(可视化)的模块非常多,下面我简单介绍几个不错的绘图库,感兴趣的朋友可以自己尝试一下,实验环境win7+python3.6+pycharm5.0,主要内容如下:
matplotlib
这是python中专门用于绘图的一个模块,功能强大,制图种类繁多,使用也最广泛,下面我简单介绍一下这个模块的安装和使用:
1.首先,安装matplotlib模块,这个直接在cmd窗口输入安装命令“pip install matplotlib”就行,如下:
2.安装完成后,我们就可以编写代码进行一下简单测试了,代码如下,一个稍微复杂的曲线图:
程序运行效果如下,看着还是非常不错的:
3.更多示例的话,可以参考一下官网教程,介绍的非常详细,柱状图、散点图、饼图等都有,非常适合初学者学习入门:
seaborn
这是一个基于matplotlib的绘图库,是matplotlib的高级封装,代码量更少,使用起来也更方便,下面我简单介绍一下这个模块的安装和使用:
1.首先,安装seaborn模块,这个也直接输入安装命令“pip install seaborn”就行,如下,很快就能安装完成:
2.安装完成后,我们就可以直接编写代码来测试一下这个模块了,代码如下,一个折线图集合:
程序运行截图如下,效果也非常不错:
3.更多示例的话,也直接参考官网教程就行,介绍的非常详细,很适合初学者入门学习:
pyecharts
这是echarts的一个python接口,借助于echarts强大的可视化功能,python也可以快速构建、绘制各种各样的图表,下面我简单介绍一下这个模块的安装和使用:
1.首先,安装pyecharts模块,这个也直接输入命令“pip install pyecharts”就行,如下:
2.安装完成后,我们就可以编写代码来进行下测试了,测试代码如下,一个简单的3D散点图:
程序运行截图如下(基于浏览器进行显示),效果还是非常不错的:
至此,我们就完成了利用python来进行绘图(可视化)。总的来说,这3个绘图模块使用起来都非常不错,对于大多数图表绘制来说,完全可以满足需求,当然,还有许多其他绘图模块,像ggplot等,也都非常不错,网上也有相关教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
python画图有很多扩展可以用,比如matplotlib、turtle、pychart等等,看你需要什么方面了,不同的需求需要用不同的工具。如果做界面还有pyqt、tkinter等等,做 游戏 还有pygame等等。
python报错需要查看报错信息,进行调试才能正常运行
㈥ Python Matplotlib画图
主要用于作图、可视化问题
pip install matplotlib
导入模块 pyplot 和 pylab ,可以参考下面链接观察两者区别:
https://www.cnblogs.com/Shoesy/p/6673947.html
(说白了就是pylay=pyplot+numpy)
输入这三行解决
主要使用 plot() 来展示,里面前两个参数代表 x , y 坐标(注意x,y数量要一样),第三个参数可以用来设置散点图( 'o' )或者颜色、线条形式等各种样式,并且第三个参数可以同时传入多个,比如要红色的散点图就: Ɔr'
(1)颜色样式:
(2)线条样式:
(3)点的样式:
(4)坐标区间:
或者分别设置x、y的区间:
注:
设置点的样式时默认就是散点图,以及同类样式只能设置一个(比如不能设置两种颜色),并且还可以把多个图集合在一起展示,那就多 plot 几个,plot就相当于一个画布,每plot一个就相当于在上面画一张图,再弄就继续在上面画
主要用 hist() 来显示,实现方式很简单,把一组数据放入括号里就行了,例如随机生成一堆正态分布的数,然后直方图显示:
其中如果要设置直方图格式(宽度、上下限、是否要轮廓)可以这样:
注:
直方图和折线图这些不太一样,折线图是传入两个等长数据,然后每个x、y坐标一一对应展示出来。而直方图是:第一个参数代表你传入的所有数据,第二个参数代表你传入的x轴范围,然后直方图会将第一个参数里传入的数据一个个计算在某个范围内含有的数据量,因此传入的两个参数数据不一定要等长,例如下面的例子:
结果如图:
可以看出数据被自动分配到对应的范围内上了
使用 subplot(row, col, area) :三个参数分别是行数、列数和区域,比如要将原图分成2行2列(切成4份),然后要左下角那个图就:
如果想4个图都显示就4个 subplot ,分别1、2、3、4就行了,然后在各图的subplot之后写的都是每个图的内容,现在我们试试弄一个2行,第一行两列的图片(想象下鼠标的样子),而且分别是不同的内容:
注:
labels 、 sizes 、 colors 和 explode 的长度都要一样
1.导入3D图相关模块:
2.将画图板加到3D模块里,然后加入数据即可:
3D散点图举例:
通过 imread() 读取,举例:
https://blog.csdn.net/qq_34859482/article/details/80617391
㈦ python绘图篇
1,xlable,ylable设置x,y轴的标题文字。
2,title设置标题。
3,xlim,ylim设置x,y轴显示范围。
plt.show()显示绘图窗口,通常情况下,show()会阻碍程序运行,带-wthread等参数的环境下,窗口不会关闭。
plt.saveFig()保存图像。
面向对象绘图
1,当前图表和子图可以用gcf(),gca()获得。
subplot()绘制包含多个图表的子图。
configure subplots,可调节子图与图表边框距离。
可以通过修改配置文件更改对象属性。
图标显示中文
1,在程序中直接指定字体。
2, 在程序开始修改配置字典reParams.
3,修改配置文件。
Artist对象
1,图标的绘制领域。
2,如何在FigureCanvas对象上绘图。
3,如何使用Renderer在FigureCanvas对象上绘图。
FigureCanvas和Render处理底层图像操作,Artist处理高层结构。
分为简单对象和容器对象,简单的Aritist是标准的绘图元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器类型包含许多简单的的 Aritist对象,使他们构成一个整体,例如Axis,Axes,Figure等。
直接创建Artist对象进项绘图操作步奏:
1,创建Figure对象(通过figure()函数,会进行许多初始化操作,不建议直接创建。)
2,为Figure对象创建一个或多个Axes对象。
3,调用Axes对象的方法创建各类简单的Artist对象。
Figure容器
如何找到指定的Artist对象。
1,可调用add_subplot()和add_axes()方法向图表添加子图。
2,可使用for循环添加栅格。
3,可通过transform修改坐标原点。
Axes容器
1,patch修改背景。
2,包含坐标轴,坐标网格,刻度标签,坐标轴标题等内容。
3,get_ticklabels(),,get-ticklines获得刻度标签和刻度线。
1,可对曲线进行插值。
2,fill_between()绘制交点。
3,坐标变换。
4,绘制阴影。
5,添加注释。
1,绘制直方图的函数是
2,箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位
数、中位数、第三四分位数与最大值来描述数据的一种方法,它可以粗略地看出数据是否具有对称性以及分
布的分散程度等信息,特别可以用于对几个样本的比较。
3,饼图就是把一个圆盘按所需表达变量的观察数划分为若干份,每一份的角度(即面积)等价于每个观察
值的大小。
4,散点图
5,QQ图
低层绘图函数
类似于barplot(),dotchart()和plot()这样的函数采用低层的绘图函数来画线和点,来表达它们在页面上放置的位置以及其他各种特征。
在这一节中,我们会描述一些低层的绘图函数,用户也可以调用这些函数用于绘图。首先我们先讲一下R怎么描述一个页面;然后我们讲怎么在页面上添加点,线和文字;最后讲一下怎么修改一些基本的图形。
绘图区域与边界
R在绘图时,将显示区域划分为几个部分。绘制区域显示了根据数据描绘出来的图像,在此区域内R根据数据选择一个坐标系,通过显示出来的坐标轴可以看到R使用的坐标系。在绘制区域之外是边沿区,从底部开始按顺时针方向分别用数字1到4表示。文字和标签通常显示在边沿区域内,按照从内到外的行数先后显示。
添加对象
在绘制的图像上还可以继续添加若干对象,下面是几个有用的函数,以及对其功能的说明。
•points(x, y, ...),添加点
•lines(x, y, ...),添加线段
•text(x, y, labels, ...),添加文字
•abline(a, b, ...),添加直线y=a+bx
•abline(h=y, ...),添加水平线
•abline(v=x, ...),添加垂直线
•polygon(x, y, ...),添加一个闭合的多边形
•segments(x0, y0, x1, y1, ...),画线段
•arrows(x0, y0, x1, y1, ...),画箭头
•symbols(x, y, ...),添加各种符号
•legend(x, y, legend, ...),添加图列说明