python画图包_极致安卓之—Aid Learning基于Jupyter开发Java和Python

在本文中,介绍了0.7X版Aid Learning的安装、使用和测试。

myastrotong:把安卓手机性能发挥到极致之-Aid Learning​zhuanlan.zhihu.com
c0e7fbf93ee5e77782e5707bd44e29e3.png

当前(2020年1月)Aid Learning版本号发展到了0.80,新增了很多功能,比如ssh、电脑直接登录桌面、Jupyter、Xterm等等。这一版本带来的惊喜真是不少!强烈推荐更新!

Aid Learning --build a Linux running on the Android with GUI, AI and Python​www.aidlearning.net
816da8b745126173f33d72200749e28e.png

8f888edd735ee6e0323fe9a95fecf340.png
Aid Learning 0.8版本界面

官方一直把Aid Learning定位为一款AI编程平台。我眼里却把它当做星辰大海!

我一般爱用Java和C++来编程,目前也在学习Python。

所以本文基于Aid Learning来做我熟悉的事情:基于Jupyter编写Java和Python。

C++编程主要还是依靠Vim来实现吧,Vim做这个已经足够好了。网上有无数的教程,后期有空了我再趟趟道吧。当前我主要基于Jupyter来实现Java和Python编程。

写在前面:利用Jupyter进行Java开发时需要的包管理方法见本文。
myastrotong:Aid learning/Termux之Jupyter的Java编程高级篇——包管理​zhuanlan.zhihu.com

Jupyter简介

Jupyter官方当前推荐使用Jupyter Lab

如果在电脑端,我的确也推荐这个,如果在手机端,你非要用,也不是不行,那你就把手机打横了用吧。

安装方法如下:

pip3 install jupyterlab

使用方法为,在terminal输入:

jupyter lab

如下是正常竖着用Jupyter Lab的效果,手机屏幕太小了,右边关键部位啥都看不到了。

62ef9903714a83aaac156ab7b6d941d7.png
手机使用Jupyter Lab

如下是手机横着用Jupyter Lab的效果,右边关键部位能够看到了。但是屏幕还是太小了,只能是凑活用吧!

0f6c458284eccc9d41db800cd7e12f19.png
手机横着使用Jupyter Lab

下面是使用Jupyter Notebook的效果:

19b30f0fe847d268dd143ffd9a6b79bd.png
Jupyter Notebook手机端效果

对比发现,在手机上使用notebook还是比lab效果要好一些!个人观点,大家可以自行选择。

Jupyter之Python开发

在Jupyter中使用Python非常简单:

点击Jupyter,选择New->Python3

然后在In[]对应的cell中输入如下代码:

%matplotlib inline
import matplotlib.pyplot as plt  # 导入绘图包
labels = 'frog', 'hogs', 'dogs', 'logs'  # 设定数据标签
sizes = 15, 20, 45, 10  # 设定数据
colors = 'yellowgreen', 'gold', 'lightskyblue', 'lightcoral'  # 设定颜色
explode = 0, 0.1, 0, 0
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=50)
plt.axis('equal')
plt.show()

效果如下:

d1e2cfd2231e5df41f91f3f9c86d09ce.png
Jupyter之Python开发

Jupyter中使用Java

首先是安装JDK。很遗憾,当前Aid Learning内核支持的JDK是JDK8,而Jupyter支持的JDK版本是9.0及以上。因此你是无法使用这一款的。我找到官方大牛,给了我JDK9和JDK10。试验发现都能正确安装。

基于官方提供的tar压缩文件进行安装(以jdk9为例,jdk10方法一样):

tar –xvf OpenJDK9_aarch64_Linux_201809071400.tar –C /usr/local

用vim修改如下文件

vim ~/.bashrc

在文件最后添加如下三行话(这里是jdk9,jdk10的方法与之类似)

export JAVA_HOME=/usr/local/jdk-9+181
export CLASSPATH=.:$JAVA_HOME/lib
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin

然后输入如下一行话,使得命令生效

source ~/.bashrc

上官网下载Jupyter的Java支持套件IJava,当前的最新版本是1.3.0

https://github.com/SpencerPark/IJava/

下载完ijava-1.3.0.zip,拷贝到手机里任意文件夹

在Aid的terminal内进入到该文件夹,然后:

unzip ijava.zip -d ijava
cd ijava
python3 install.py --sys-prefix

安装完毕后,查看jupyter内核

jupyter kernelspec list

86c7dac538ad88fe6758a009b06c0664.png

可以看到jupyter目前支持python3和java了!

如果不想支持Java了,就输入如下指令删除

jupyter kernelspec remove java

以下选择运行Jupyter来调用JAVA,坑来了!

直接点击桌面的Jupyter图标,

选择New->Java,你会发现有个错误:Kernel error,点开以后你会发现报如下错误:

437a913e786f6cb6b47e4cb16aec7e5e.png
Aid官方版Jupyter运行Java报错

查看官网,有如下一段话:

i. Next ensure that java is in a location where the jdk was installed and not just the jre. Use the java --list-modules command to do this. The list should contain jdk.jshell.

o On *nix java --list-modules | grep "jdk.jshell"

o On windows java --list-modules | findstr "jdk.jshell"

Both should output jdk.jshell@ followed by your java version.

If the kernel cannot start with an error along the lines of

Exception in thread "main" java.lang.NoClassDefFoundError: jdk/jshell/JShellException

...

Caused by: java.lang.ClassNotFoundException: jdk.jshell.JShellException

...

then double check that java is referring to the command for the jdk and not the jre.

鬼知道是啥意思,哈哈!反正看完这段话我还是修不好这个bug。

不管他了,天下路多的是,这一条不通,就换一条呗!

方法就是,自己在后台开启Jupyter:

打开Aid的terminal,输入:

jupyter notebook

等待jupyter开启,然后在手机或者同一局域网下的电脑下的浏览器中输入:

192.168.x.x:8888或者192.168.x.x:8889

以上网址由ifconfig指令查看,也就是在terminal中输入:

ifconfig

比如我的手机是192.168.3.28

端口号根据jupyter开启后输入的提示来执行,一般是8888,如果被占用了就是8889。

在同一局域网下,输入

http://192.168.3.28:8889/ 

如果是手机端,还可以输入

http://localhost:8889/

成功开启的界面为:

778a120ed40dbe0572616a17d11d4880.png

注意:我的界面中间有Nbextensions。这个是Jupyter一个很重要的扩展插件,安装方法:

apt install libxml2
apt install libxslt1-dev 
pip3 install jupyter-contrib-nbextensions

前两个不安上,扩展包是安不了的!如果你安装报错,说找不到这两个库或者安装不上,那么可能是libxml和libxslt在系统上的名字跟这个不一致,你可以输入:

apt search libxml
apt search libxslt

根据查询出来的系统对应的库名称来安装。

以上三个指令安装完毕后。

安装 javascript and css files:

jupyter contrib nbextension install --user

安装configurator:

pip3 install jupyter_nbextensions_configurator

扩展插件就安装完毕了!

然后如下所示,把一些你需要的选项选择上,比如运行时间(Execute Time)、Python提示(Hinterland)等等。

3ad1b9032014c4f302eeb09b01a6e05a.png

点击New,选择Java,然后在新出现的界面中,在In[]输入如下内容,点击运行,效果如下:

40d41c484c75a14906709b692c87ecb8.png

点击如图红圈部分,可以修改文件名,这里我改成了LearnJava。

这个例子很重要,示例了从maven中取得某个版本号的包并使用的方法。这里我使用Maven的xchart包,并画图!类似Python的Matplotlib画图,很给力的例子!

源码如下:

%maven org.knowm.xchart:xchart:3.5.2    
import org.knowm.xchart.*;
 
int n=100;
double[]xData=new double[n];
double[]yData=new double[n];
for(int i=0;i<n;i++){
    xData[i]=i*0.1;
    yData[i]=Math.sin(xData[i]);
}
 
XYChart chart=QuickChart.getChart("Sample Chart","X","Y","y(x)",xData,yData);
BitmapEncoder.getBufferedImage(chart);

Jupyter真是一个方便的编写、学习Python、Java的利器!所见即所得!甚至是快速出图,配合手机,方便大家快速的学习编程!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值