编程python画一个橙子平面,图形怎么画?

编程python画一个橙子平面,图形怎么画?,第1张

下面是一个使用Python语言绘制橙子图形的示例程序:

# 导入 turtle 库

import turtle

# 创建 turtle 实例

t = turtle.Turtle()

# 设置画笔颜色

t.color("orange")

# 绘制橙子形状

t.begin_fill()

t.circle(50)

t.end_fill()

# 绘制下巴

t.penup()

t.goto(-25, -40)

t.pendown()

t.circle(10)

# 绘制眼睛

t.penup()

t.goto(-15, -30)

t.pendown()

t.circle(5)

t.penup()

t.goto(5, -30)

t.pendown()

t.circle(5)

# 绘制鼻子

t.penup()

t.goto(0, -20)

t.pendown()

t.dot(10)

# 绘制嘴巴

t.penup()

t.goto(-15, -20)

t.pendown()

t.seth(330)

t.circle(20, 80)

今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?

搜索之后发现,它会d出一个对话框,然后就开始画了,比如下图

第一个常用的库是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轴怎么加?这又是一个问题,留给爱思考爱学习的你。

有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。

官网下载Python3,LZ的配置环境是Python3.6,PyCharm 2017.2.1

File->Settings->Tools->External Tools,点击+好配置好即可,LZ已经配置好了,刚开始是没有的

Program里面填designer.exe的位置,Working directory里面点击右面的Insert按钮,插入和图片一样的值即可

Program里面填python.exe的安装目录,Parameters里面填如下内容

Working directory点击右面Insert按钮插入相同内容即可

兴建一个项目,右键点击项目->External Tools->QtDesigner,d出QtDesigner的图形界面如下,LZ拖入了2个按钮

这时你会发现多了一个untiled.ui文件,文件名LZ用的是默认的,右键点击这个ui文件->External Tools->PyUIC,这时文件夹下多了一个untitled.py文件,打开untitled.py,加入以下内容Ctrl+Shift+F10运行即可

untitled.py

运行结果

LZ用的是pyinstaller,pyinstaller不支持Python3.6,无奈又下载了一个Python3.5的环境,运行和打包在Python3.5下,工具用的是Python3.6下的,也不影响已经配置好的工具的使用,命令行中输入一下即可

在命令行中进入要打包的py文件所在的目录,输入一下命令

然后到py文件所在目录的dist文件中,打开exe,结果一闪而退,原来是找不到外部的动态链接库,输入一下命令,指明外部链接库

-F的效果是打包成一个单文件,-w的效果是取消控制台。

这个是我开发的,将doc文件批量转为docx的小工具,源码放在github上,大家可以参考

https://github.com/erlieStar/doc2docx

欢迎star


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11809949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存