一行代码画一个图——lazy database新功能上线!

640?wx_fmt=png


首先感谢github网友制作的鼠标拖拽,滚轮方法功能:

拖拽功能补丁链接:

https://gist.github.com/t20100/e5a9ba1196101e618883


看一下数据长什么样:


用excel打开的csv文件长这样:


640?wx_fmt=jpeg


在python ide中直接显示长这样:


640?wx_fmt=jpeg


看完数据长什么样,接下来就可以画图了。

废话不多说,直接上代码和图


from lzdb import *

Table.coding = "gb18030"
t=Table.read("测试样本")
Table.setfig(4,4,(20,20))

k=[[0.70.20.91],
    [0.50.40.91],
    [0.30.60.91],
    [0.10.80.91],
   [0.900.91]]
#这个是颜色
#开始画图
t.bar("名字","随机1",title="柱状图-1组数据",color=k[0])


640?wx_fmt=jpeg

t.bar("名字",["随机1","随机2","随机3","随机4"],title="柱状图-n组数据-1行代码",color=k)

640?wx_fmt=jpeg

t.plot("规律1","规律4",title="线图-1组数据-非平滑处理",color=k[0])

640?wx_fmt=jpeg

t.plot("规律1",["规律1","规律2","规律3","规律4"],
       title="线图-n组数据-1行代码-平滑处理",smoothindex=5,color=k)

640?wx_fmt=jpeg

t.plot("规律1","规律1",title="线图-n组数据-n行代码-非平滑处理",
       label="第一个",smoothindex=5,color=k[0])
t.plot("规律1","规律2",new = False, label="第二个",color=k[1])
t.plot("规律1","规律3",new = False,label="第三个",color=k[2])
t.plot("规律1","规律4",new = False,label="第四个", color=k[3])

640?wx_fmt=jpeg

t.scatter("随机1","随机2",title="散点图-1组数据",color=k[0])

640?wx_fmt=jpeg

t.scatter("随机1",["随机2","随机3","随机4"],title="散点图-n组数据-1行代码",
          label=[1,2,3],color=k)

640?wx_fmt=jpeg

t.scatter("随机1","随机2",title="散点图-n组数据-n行代码",label="1st",color=k[0])
t.scatter("随机1","随机3",new=False,label="2nd",color=k[1])
t.scatter("随机1","随机4",new=False,label="3rd",color=k[2])

640?wx_fmt=jpeg

t.scatter3d("规律1","规律2","规律4",title="散点图3D-1组数据-1行代码",color=k[0])

640?wx_fmt=jpeg

t.scatter3d("规律1","规律2","规律4",label="散点1",
            title="散点图3D-n组数据-n行代码",color=k[0])
t.scatter3d("规律1","规律3","规律4",label="散点2",new=False,color=k[1])
t.scatter3d("规律1","规律2","规律3",label="散点3",new=False,color=k[2])

640?wx_fmt=jpeg

t.ring("名字","随机1",title="环形图-1组数据-1行代码-标签",colors=k)

640?wx_fmt=jpeg

t.ring("名字","随机1",mod="legend",title="环形图-1组数据-1行代码-图例",colors=k)

640?wx_fmt=jpeg

t.ring("名字","随机1",mod="legend",width=1,title="饼图-1组数据-1行代码-图例",colors=k)

640?wx_fmt=jpeg

最后展示或者转图片直接输出


#plt.show()
#plt.savefig('display.jpg')

640?wx_fmt=jpeg

以上就是这次更新的全部内容:

这次更新包裹了一些matplotlib的常用功能。


这次更新只包括以上展示的内容,其他的一些图形展示还没有时间完成。


目前只更新了一些监督学习最基本的一些数据展示,比如散点图。


在我github上follow,like,fork会支持我给lazy database做出更多的极简功能(比如heatmap,3d地形图等等)。


下面是github地址:

https://github.com/moenova/lazy-database


下载方式也很简单:

安装pip后输入:

pip install lzdb


在安装这个lazy database library之前请先安装以下关联的library:

scipy,sklearn,matplotlib,numpy


征集lazy database的新名字:

原来只是因为SQL语句不方便于是做了lazy database,现在看来,数据展示,机器学习也是极为不方便需要写很多代码。所以准备扩充以下,让数据展示和机器学习也能尽量一行代码搞定。所以lazy database(懒人数据库)这个名字已经不能概括这个library的功能了所以需要一个新的名字。


作者:Moenova   知乎ID:https://www.zhihu.com/people/meng-xin-43-24 
github:https://github.com/moenova/lazy-database

∞∞∞

640?wx_fmt=png

公众号回复“IT派”

邀你加入 IT派 { 深广创投圈 } 

好的,Lazy Theta* 的 Python 代码如下: ```python import math import heapq def lazy_theta_star(start, goal, obstacles, h_func, c_func): g = {start: 0} parents = {start: None} open_set = [(h_func(start, goal), start)] closed_set = set() while open_set: f, curr_node = heapq.heappop(open_set) if curr_node == goal: path = [] while curr_node != start: path.append(curr_node) curr_node = parents[curr_node] path.append(start) return list(reversed(path)) closed_set.add(curr_node) for neighbor in get_neighbors(curr_node, obstacles): if neighbor in closed_set: continue tentative_g = g[curr_node] + c_func(curr_node, neighbor) if neighbor not in g or tentative_g < g[neighbor]: parents[neighbor] = curr_node g[neighbor] = tentative_g f = tentative_g + h_func(neighbor, goal) heapq.heappush(open_set, (f, neighbor)) return None def get_neighbors(node, obstacles): neighbors = [] for x_offset in range(-1, 2): for y_offset in range(-1, 2): if x_offset == 0 and y_offset == 0: continue neighbor_x = node[0] + x_offset neighbor_y = node[1] + y_offset neighbor = (neighbor_x, neighbor_y) if neighbor in obstacles: continue if x_offset != 0 and y_offset != 0: if (node[0] + x_offset, node[1]) in obstacles or (node[0], node[1] + y_offset) in obstacles: continue neighbors.append(neighbor) return neighbors def euclidean_dist(node1, node2): return math.sqrt((node1[0] - node2[0]) ** 2 + (node1[1] - node2[1]) ** 2) def manhattan_dist(node1, node2): return abs(node1[0] - node2[0]) + abs(node1[1] - node2[1]) ``` 希望能帮到你!接下来有什么问题,可以随时问我哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值