使用Octave,我可以将数组绘制到终端,例如,绘制一个带有函数值的数组,x^2在我的终端中输出:
10000 ++---------+-----------+----------+-----------+---------++
++ + + + + ++
|+ : : : : +|
|++ : : : : ++|
| + : : : : + |
| ++ : : : : ++ |
8000 ++.+..................................................+.++
| ++ : : : : ++ |
| ++ : : : : ++ |
| + : : : : + |
| ++ : : : : ++ |
| + : : : : + …Run Code Online (Sandbox Code Playgroud) 这可能是一个有点奇怪的问题,但无论如何.有时候,我在整个地方(大陆)使用ssh进入服务器或实验室计算机以检查内容,有时甚至运行Matlab或Octave以查看最新数据等.然后,当我需要任何类型的情节时,有趣的开始.要么我把一大块可能的垃圾通过互联网复制到我的电脑上并在本地生成情节.或者,如果先前的尝试不可选,我通过ssh和X-forwarding运行Matlab,这在低带宽和/或高ping时是痛苦的.
实际上,我想知道是否有办法在shell中生成类似于80年代的老式字符模式图,至少是带有线或点的简单东西(没有X-forwarding).拥有一个"丑陋"(但很酷?)的角色模式情节至少可以让我确定我是在看一条线,一条抛物线还是只是简单的废话 - 这可能是非常有用的.我知道,有些东西可以通过聪明的数学来确定,但是嘿,抽象思维被高估了.
编辑...另一个相关的(?)标记.
我正在寻找一个命令行工具(用于linux)来生成数据文件中的图.我一开始尝试使用gnuplot但它的曲线拟合能力并不是那么好.
然后我尝试了R但是我找不到一种方法来写一个矢量(标志上的小箭头)或热平均值(LaTeX中的\ left\langle\right\rangle).
我有一些隐藏的插件,我找不到任何完成任务的人?
我正在研究ML / Theano,最近遇到了这个脚本:https ://gist.github.com/notmatthancock/68d52af2e8cde7fbff1c9225b2790a7f 玩起来很酷。和所有ML研究人员一样,我最近升级到了服务器,虽然功能更强大,但它也给我带来了问题。
该脚本很长,但是以以下代码结尾:
def plot_stuff(inputs, outputs, losses, net_func, n_hidden):
fig,axes = plt.subplots(1,2,figsize=(12,6))
axes[0].plot(np.arange(losses.shape[0])+1, losses)
axes[0].set_xlabel('iteration')
axes[0].set_ylabel('loss')
axes[0].set_xscale('log')
axes[0].set_yscale('log')
x,y = np.mgrid[inputs[:,0].min():inputs[:,0].max():51j, inputs[:,1].min():inputs[:,1].max():51j]
z = net_func( np.c_[x.flatten(), y.flatten()] ).reshape(x.shape)
axes[1].contourf(x,y,z, cmap=plt.cm.RdBu, alpha=0.6)
axes[1].plot(inputs[outputs==0,0], inputs[outputs==0,1], 'or')
axes[1].plot(inputs[outputs==1,0], inputs[outputs==1,1], 'sb')
axes[1].set_title('Percent missclassified: %0.2f%%' % (((net_func(inputs)>0.5) != outputs.astype(np.bool)).mean()*100))
fig.suptitle('Shallow net with %d hidden units'%n_hidden)
plt.show()
if __name__=='__main__':
n_hidden = 40
inputs, outputs = gen_data(n_samples_per_class=100)
losses, net_func = train_neural_network(inputs=inputs, outputs=outputs, n_hidden=n_hidden, n_iters=int(2000), learning_rate=0.1)
plot_stuff(inputs, outputs, losses, net_func, n_hidden)
Run Code Online (Sandbox Code Playgroud)
生成以下图表:
当我尝试在服务器上运行它时,它是一个只有命令行而没有屏幕的服务器,我可以预料地收到此错误:
fedora@ip-173-33-18-911:~/scripting/spiral$ …Run Code Online (Sandbox Code Playgroud) 我有一个band1如下所示的字典,我想根据字典中每个列表的第一个和最后一个元素打印出一个图表.x轴上每个列表的第一个元素是频率,最后一个元素是接收强度,应该在y轴上.例如,10812的强度为16等
band1 = {'channel1': [10564, 2112.8, 1922.8, 0],
'channel10': [10787, 2157.4, 1967.4, 11],
'channel11': [10812, 2162.4, 1972.4, 16],
'channel12': [10837, 2167.4, 1977.4, 46],
'channel2': [10589, 2117.8, 1927.8, 29],
'channel3': [10612, 2122.4, 1932.4, 0],
'channel4': [10637, 2127.4, 1937.4, 40],
'channel5': [10662, 2132.4, 1942.4, 54],
'channel6': [10687, 2137.4, 1947.4, 0],
'channel7': [10712, 2142.4, 1952.4, 50],
'channel8': [10737, 2147.4, 1957.4, 19],
'channel9': [10762, 2152.4, 1962.4, 24]}
Run Code Online (Sandbox Code Playgroud)
我没有问题排序这个,channel1 - > channel12但是有什么好方法可以打印一个漂亮的图表,字典中的条目数量可以随着或多或少的频道而变化.
python ×3
matplotlib ×2
plot ×2
ascii-art ×1
command-line ×1
linux ×1
matlab ×1
octave ×1
python-2.7 ×1
shell ×1
theano ×1