GVKun编程网logo

在IPython Notebook中自动内联运行%matplotlib(ipython notebook如何运行)

16

本文将分享在IPythonNotebook中自动内联运行%matplotlib的详细内容,并且还将对ipythonnotebook如何运行进行详尽解释,此外,我们还将为大家带来关于ipython-no

本文将分享在IPython Notebook中自动内联运行%matplotlib的详细内容,并且还将对ipython notebook如何运行进行详尽解释,此外,我们还将为大家带来关于ipython-notebook – 如何在不启动内核的情况下使用Ipython Notebook / Jupyter打开笔记本?、java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本、jupyter notebook 中,使用 matplotlib 绘制动态图形显示问题?、jupyter-notebook 中 matplotlib 不支持中文的问题 (Linux)的相关知识,希望对你有所帮助。

本文目录一览:

在IPython Notebook中自动内联运行%matplotlib(ipython notebook如何运行)

在IPython Notebook中自动内联运行%matplotlib(ipython notebook如何运行)

每次启动IPython Notebook时,我运行的第一个命令是

%matplotlib inline

有什么方法可以更改我的配置文件,以便在启动IPython时自动处于此模式?

ipython-notebook – 如何在不启动内核的情况下使用Ipython Notebook / Jupyter打开笔记本?

ipython-notebook – 如何在不启动内核的情况下使用Ipython Notebook / Jupyter打开笔记本?

让我们假设,我想打开一个笔记本(即使用我的本地Jupyter实例),但我不想用它启动相关的内核(即 Python).我怎样才能做到这一点?

可能的用例:

>我只想从以前的计算中输出笔记本.我不想做进一步的计算.
>我想快速浏览一下,而不是等待内核启动.

根据我的理解,所有LaTeX渲染,JavaScript和CSS应该独立于内核工作.它应该告诉我,内核没有连接.然后我可以决定通过菜单启动内核.

我没有在任何地方找到这个记录.

我不想使用nbviewer,因为我希望它能够在我正常的Jupyter工作流程中尽可能地集成.

解决方法

我没有使用Jupyter,只是在大分裂之前的最后一个版本的IPython,但是当我尝试打开一个带有与之关联的虚假内核的笔记本时,IPython让我打开它“没有内核”.因此,功能存在,但它不能直接访问AFAIK.

所以我想你只需要手动编辑.ipynb文件(或编写一个脚本来完成这个)并将全局元数据字段更改为这样的东西来实现你的目标:

"Metadata": {
  "kernelspec": {
   "display_name": "bogus","language": "bogus","name": "bogus"
  },"language_info": {
   "codemirror_mode": "<don''t change this>","mimetype": "text/plain","name": "bogus"
  }
}

这只是部分解决方法,但它似乎适用于所有情况.您仍需要在系统中使用正确的codemirror配置.

另一种方法是编写一个什么都不做的小内核(比如“Echo Kernel”),但这样效率会低一些,因为你仍然需要一种指定不同语法高亮模式的方法(除非你打算编写IPython笔记本) .

java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本

java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本

写在前面,最近需要在java中调用matplotlib,其他一些画图包都没这个好,毕竟python在科学计算有优势。找到了matplotlib4j,大概看了下github上的https://github.com/sh0nk/matplotlib4j,maven repository:

<dependency>
   <groupId>com.github.sh0nk</groupId>
       <artifactId>matplotlib4j</artifactId>
       <version>0.5.0</version>
</dependency>

简单贴个测试类,更多的用法在test报下有个MainTest.class。

 @Test
    public void testPlot() throws IOException, PythonExecutionException, ClassNotFoundException, NoSuchMethodException, illegalaccessexception, InvocationTargetException, InstantiationException {
        Plot plot = Plot.create(PythonConfig.pythonBinPathConfig("D:\\python3.6\\python.exe"));
        plt.plot()
                .add(Arrays.asList(1.3, 2))
                .label("label")
                .linestyle("--");
        plt.xlabel("xlabel");
        plt.ylabel("ylabel");
        plt.text(0.5, 0.2, "text");
        plt.title("Title!");
        plt.legend();
        plt.show();

    }

下面问题来了,这个对matplotlib的封装不是很全面,源码里也有很多todo,有很多函数简单用用还行,很多重载用不了,比如plt.plot(xdata,ydata)可以,但是无法在其中指定字体plt.plot(xdata,ydata,fontsize=30);

所以想要更全面的用法还得自己动手,几种办法:

  1. 大部分还是用matplotlib4j中的,个别的自己需要的但里头没有的函数,实现他的builder接口,重写build方法,返回一个py文件中命令行的字符串形式,然后反射取到PlotImpl中的成员变量registeredBuilders,往后追加命令行,感觉适用于只有极个别命令找不到的情况,挺麻烦的,而且要是传nd.array(…)这种参数还得额外拼字符串。
//拿到plotImpl中用于组装python脚本语句的的registeredBuilders,需要加什么直接添加新的builder就行了
        Field registeredBuildersField = plt.getClass().getDeclaredField("registeredBuilders");
        registeredBuildersField.setAccessible(true);
        List<Builder> registeredBuilders = (List<Builder>) registeredBuildersField.get(plt);

        TicksBuilder ticksBuilder = new TicksBuilder(yList, "yticks", fontSize);
        registeredBuilders.add(ticksBuilder);
  1. 这种比较直接,参照matplotlib4j底层,直接写py.exe文件,执行命令行,比较推荐这种,一行一行脚本自己写,数据拼装方便,看起来直观。比如写如下的脚本并执行,搞两组数据,画个散点图
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.array(自己的x数据), np.array(自己的y数据), 'k.', markersize=4)
plt.xlim(0,6000)
plt.ylim(0,24)
plt.yticks(np.arange(0, 25, 1), fontsize=10)
plt.title("waterfall")
plt.show()

像下面这么写就行了

		//1. 准备自己的数据 不用管
        List<Float> y_secondList_formatByHours = y_secondList.stream().map(second -> (float)second / 3600).collect(Collectors.toList());

        //2.准备命令行list,逐行命令添加
        List<String> scriptLines = new ArrayList<>();
        scriptLines.add("import numpy as np");
        scriptLines.add("import matplotlib.pyplot as plt");
        scriptLines.add("plt.plot("+"np.array("+x_positionList+"),"+"np.array(" +y_secondList_formatByHours+"),\"k.\",label=\"waterfall\",lw=1.0,markersize=4)");
        scriptLines.add("plt.xlim(0,6000)");
        scriptLines.add("plt.ylim(0,24)");
        scriptLines.add("plt.yticks(np.arange(0, 25, 1), fontsize=10)");
        scriptLines.add("plt.title(\"waterfall\")");
        scriptLines.add("plt.show()");
        //3. 调用matplotlib4j 里面的pycommond对象,传入自己电脑的python路径
        pycommand command = new pycommand(PythonConfig.pythonBinPathConfig("D:\\python3.6\\python.exe"));
        //4. 执行,每次执行会生成临时文件 如C:\Users\ADMINI~1\AppData\Local\Temp\1623292234356-0\exec.py,这个带的日志输出能看到,搞定
        command.execute(Joiner.on('\n').join(scriptLines));

在这里插入图片描述

搞定。

jupyter notebook 中,使用 matplotlib 绘制动态图形显示问题?

jupyter notebook 中,使用 matplotlib 绘制动态图形显示问题?

# 以下为sin动图代码,在python中能正常显示动图,而在jupyter中显示不出来

# 即便是加了  %matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
%matplotlib inline
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = ax.plot([], [], ''r-'', animated=False)

def init():
    ax.set_xlim(0, 2*np.pi)
    ax.set_ylim(-1, 1)
    return ln,

def update(frame):
    xdata.append(frame)
    ydata.append(np.sin(frame))
    ln.set_data(xdata, ydata)
    return ln,

ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, blit=True)
plt.show()

jupyter-notebook 中 matplotlib 不支持中文的问题 (Linux)

jupyter-notebook 中 matplotlib 不支持中文的问题 (Linux)

前言:问题就不截图了,jupyter-notebook 中,使用 plt 画出的图像,中文都是小方格 (乱码) 解决方法如下

1. Linux 安装字体

把 Windows 的字体 C:/Windows/Fonts 复制到 Linux 系统的存放字体路径 /usr/share/fonts 下,如图: cd 到 /usr/share/fonts/Fonts, 也就是拷贝来的文件夹,建立字体索引信息,更新字体缓存,让字体生效,运行命令: mkfontscale && mkfontdir && fc-cache -fv && source /etc/profile && fc-list |wc -l

查看字体 fc-list :lang=zh

2. 添加配置

这里有很多版本,比如:

import matplotlib
matplotlib.use(''qt4agg'')
#指定默认字体
matplotlib.rcParams[''font.sans-serif''] = [''SimHei'']
matplotlib.rcParams[''font.family'']=''sans-serif'' #解决负号''-''显示为方块的问题
matplotlib.rcParams[''axes.unicode_minus''] = False

我的设置是:

from pylab import mpl
mpl.rcParams[''font.sans-serif''] = [''STSong'']
mpl.rcParams[''axes.unicode_minus''] = False

如图,可以正常显示中文了

3. 如果还不行,清除缓存

如果添加了第二部的配置,但还是显示中文乱码,那么有可能是缓存的问题,执行 rm -r ~/.cache/matplotlib

关于在IPython Notebook中自动内联运行%matplotlibipython notebook如何运行的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ipython-notebook – 如何在不启动内核的情况下使用Ipython Notebook / Jupyter打开笔记本?、java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本、jupyter notebook 中,使用 matplotlib 绘制动态图形显示问题?、jupyter-notebook 中 matplotlib 不支持中文的问题 (Linux)等相关知识的信息别忘了在本站进行查找喔。

本文标签: