Python函数图像交点 python画数学函数图像

不能直接写出函数的表达式 怎么在python里画函数图象呢?不写出y=f(x)这样的表达式,由隐函数的等式直接绘制图像,以x2+y2+xy=1的图像为例,使用sympy间接调用matplotlib工具的代码和该二次曲线图像如下(注意python里的乘幂符号是**而不是^ , 还有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),这几点和matlab的区别很大)
直接在命令提示行的里面运行代码的效果
from sympy import *;
x,y=symbols('x y');
plotting.plot_implicit(x**2+y**2+x*y-1);
关于Python命令行的NBA文字直播小工具找了一圈NBA文字直播网站,发现手机版直播吧有现成的接口,直接返回json格式数据 。那就是它了 , 听我慢慢道来 。
首先在电脑浏览器打开手机版直播吧,我用的是chrome浏览器,在Network中可以看到 , 它不停地用GET方式请求,这个地址会返回当前正在进行的所有类型比赛的基本情况,根据其中的type字段过滤掉非NBA比赛就OK了 。其中最重要的是ID字段,之后的所有操作都需要用到 。返回的数据如下所示:
{
"code": "2760624",
"second": "10",
"list": [
{
"id": "96233",
"sdate": "2017-04-20",
"time": "10:30",
"url": "/zhibo/nba/2017/042096233.htm",
"type": "basketball",
"start": "2017-04-20 10:30",
"home_team": "勇士",
"visit_team": "开拓者",
"home_score": "106",
"visit_score": "81",
"period_cn": "第4节\n01:30",
"from": "dc.live",
"code": "373",
"update": "13:13:37",
"big_score_1": "",
"big_score_2": ""
},
... # 省略了其它比赛的信息
]}12345678910111213141516171819202122232425
获得所有正在进行的比赛ID后 , 点击某一场比赛 , 进入文字直播页面 。首先请求页面,其中XXXX是上一步获取的id,它会返回一个数字,即max_sid 。然后判断该max_sid是否大于上次获取的该值,如果大于,表示有新的直播文字,否则表示没有 。
如果max_sid大于上一次的值 , 通过请求(其中XXXX是今天的日期,格式为2017-04-20,YYYY是第一步中获取的id),返回这场比赛的基本情况,比如比分,是第几节等,如下所示:
{"id": "96233","home_team": "勇士","visit_team": "开拓者","home_score": "110","visit_score": "81","period_cn": "第4节结束",...}123456789
最后 , 就可以获取直播的文字了 。请求(其中XXXX是比赛id , YYYY是max_sid),它会返回最新的直播文字,其中包括一条或多条直播文字,如下所示:
[
{"live_id": "8769977","live_text": "@仙女最库阿-:库里正负值最高32我去?。。。?,"home_score": "110","visit_score": "81","pid_text": "比赛结束",...
},... # 可能有多条直播文字]1234567891011
可以看到,该请求返回的信息中没有比赛剩余时间、主队和客队等信息,所以每次获取直播文字之前,需要多一次请求,获得比赛的基本信息 。
基本流程就是这样 , 非常简单,一共就四个GET请求,返回四串json,用requests库请求,然后解析搞定 。
先定义一个Match类,表示当前正在进行的每一场比赛 。
# match.pyclass Match:
def __init__(self, **kwargs):
self.id = kwargs['id']
self.home_team = kwargs['home_team']
self.visit_team = kwargs['visit_team']
self.home_score = kwargs['home_score']
self.visit_score = kwargs['visit_score']
self.period_cn = kwargs['period_cn'].replace('\n', ' ')def __repr__(self):
return '{self.id} {self.home_team} {self.home_score} - {self.visit_score} {self.visit_team} {self.period_cn}'.format(self=self)12345678910111213
再定义一个TextLiving类,表示获取的每一条文字直播 。

推荐阅读