假设我有一个宽x和高y的numpy图像.我必须将图像的中心部分裁剪为宽度cropx和height cropy.让我们假设cropx和cropy是正非零整数并且小于相应的图像大小.将切片应用于输出图像的最佳方法是什么?
我有一个由2列组成的数据文件,其中包含名称和值.
foo 0.1
bar 0.2
fff 0.4
bbb 0.7
Run Code Online (Sandbox Code Playgroud)
我想绘制这个并注释数据点旁边的文本条目.
我试过了
plot 'file' using 1:2 with labels
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我想问题是我必须依靠gnuplot只使用y的第二列并且等距x轴.
我有一个2d numpy数组的图像.我想通过X和Y偏移来移动图像,并希望框架的其余部分用零填充.我已经看过关于'roll'功能的讨论,但这只适用于1轴.(除非有人能指出我带填充的2D版本).我尝试过切片但是当转移偏移有所有可能的方向时我遇到了麻烦.我不想浏览所有XY偏移+/-排列.有一个简单的通用解决方案吗?我有以下代码,适用于X-offset = + 100.但它崩溃了X-offset = -100.
谢谢,格特
import matplotlib.pyplot as plt
import scipy.misc as msc
import numpy as np
lena = msc.lena()
lena.dtype
(imx,imy)= lena.shape
ox= 100
oy= 20
shift_lena = np.zeros((imx,imy))
shift_lena[0:imy-oy,0:imx-ox] = lena[oy:,ox:]
shift_lena_m = shift_lena.astype(np.int64)
shift_lena_m.dtype
plt.figure(figsize=(10, 3.6))
plt.subplot(131)
plt.imshow(lena, cmap=plt.cm.gray)
plt.subplot(132)
plt.imshow(shift_lena_m, cmap=plt.cm.gray)
plt.subplots_adjust(wspace=0, hspace=0., top=0.99, bottom=0.01, left=0.05, right=0.99)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有一个元组数组(来自结构化数组的先前处理,但提交的信息丢失了)。
>>> arr
[(0.109, 0.5), (0.109, 0.55), (0.109, 0.6)]
>>>
Run Code Online (Sandbox Code Playgroud)
我需要提取第一列和第二列的列向量。
使用两个具有固定值的索引可以正常工作,但通配符行会失败。
>>> arr[0][1]
0.5
>>> arr[*][1]
File "<stdin>", line 1
arr[*][1]
^
SyntaxError: invalid syntax
>>>
Run Code Online (Sandbox Code Playgroud)
感谢您的反馈。
我希望将gnuplot png文件无缝混合到网站的背景页面颜色中。为具有特定rgb颜色规格的图设置背景矩形,并为html页面设置相同的rgb效果很好。
彩色gnuplot矩形:
set object 1 rectangle from screen 0,0 to screen 1,1 behind fc rgb "#d0d0e0" lw 0
HTML页面背景颜色:
<body text="#000000" bgcolor="#D0D0E0" link="#0000EE" vlink="#551A8B" alink="#FF0000">
现在,我想摆脱绘图周围的细黑线(而不是轴,而不是边框周围的线),以便它完美地融合到背景中。
我试图lw 0如上或设置矩形风格noborder或者border -1,但没有作品。我应该提到这是在gnuplot 4.6 patchlevel 0上。
您可以在我的页面上看到此问题:
http://drgert.dyndns.ws:8000/bmp085/bmp085.php
感谢您的帮助,格特
我在x轴上有一个非常密集的数据集,并使用它with boxes作为直方图进行绘制。我的数据表中有x轴标签的条目。x标签变得太密集。我怎么说只打印每十分之一。
plot 'histo.raw' using 3:xtic(2) with boxes lc rgb 'orange' title 'data'
Run Code Online (Sandbox Code Playgroud)
样本数据:
130 " +0.145 -> +0.150" 0 0.00
131 " +0.150 -> +0.155" 0 0.00
132 " +0.155 -> +0.160" 0 0.00
133 " +0.160 -> +0.165" 1 0.00
134 " +0.165 -> +0.170" 2 0.00
135 " +0.170 -> +0.175" 2 0.00
136 " +0.175 -> +0.180" 4 0.00
137 " +0.180 -> +0.185" 9 0.01
138 " +0.185 -> +0.190" 31 0.03
139 …Run Code Online (Sandbox Code Playgroud) 当语句块很短时,我喜欢在多行中构造if {} {} elseif {} {},如下所示。
if {cond1} {do1}
elseif {cond2} {do2}
elseif {cond3} {do3}
Run Code Online (Sandbox Code Playgroud)
但是TCL不允许我这样做。输入:无效的命令名称“ elseif”
当我将“ do”语句周围的花括号打开成多行时,它起作用了,但是看起来很丑。
if {cond1} {do1
} elseif {cond2} {do2
} elseif {cond3} {do3}
Run Code Online (Sandbox Code Playgroud)
TCL阻止if在if之后的下一行识别elseif的基本问题是什么?
谢谢,格特
我有一个一直在后台运行的小脚本。每次跨过午夜,我都想做点什么。该脚本使用 sleep 函数,因此不确定它是否在 00:00:00 时间醒来。所以我想有这样的代码:
last_time= time.now()
while True:
if last_time < midnight && midnight < time.now():
# do stuff
last_time= time.now()
sleep(some time)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在 if 语句中编写正确的行。
我的TCL脚本使用TCL变量调用命令行工具.我已经尝试过exec或eval用于命令行,但没有任何效果.
#!/usr/bin/tclsh
set dbg 0
set iso 100
set cmd "gphoto2 --set-config-value /main/imgsettings/iso=${iso}"
if {$dbg} {puts $cmd} else {eval $cmd}
Run Code Online (Sandbox Code Playgroud)
给:
invalid command name "gphoto2"
while executing
"gphoto2 --set-config-value /main/imgsettings/iso=100"
("eval" body line 1)
invoked from within
"eval $cmd"
invoked from within
"if {$dbg} {puts $cmd} else {eval $cmd}"
(file "./canon.tcl" line 22)
Run Code Online (Sandbox Code Playgroud)
如果尝试{ exec $cmd }但是也没有用.
couldn't execute "gphoto2 --set-config-value /main/imgsettings/iso=100": no such file or directory
while executing
"exec $cmd"
invoked from within
"if {$dbg} {puts $cmd} …Run Code Online (Sandbox Code Playgroud)