我有一个坐标变换的二维地图.每个点的数据是原始坐标系中的轴上角,从0到360.我正在尝试使用pyplot.contour绘制恒定角度的线,例如45度.轮廓沿着两极之间的45度线出现,但是沿着0/360不连续性连接两个极的轮廓还有一个附加部分.这是一个非常锯齿状的丑陋线,因为它基本上只跟踪像素,一边接近0,另一边接近360.
示例:这是使用全彩色地图的图像:

您可以在左侧看到蓝色/红色曲线的不连续性.一侧是360度,另一侧是0度.在绘制轮廓时,我得到:

请注意,所有轮廓都连接两个极点,但即使我没有绘制0度轮廓,所有其他轮廓都遵循0度不连续性(因为pyplot认为一边是0而另一边是360,必须有所有其他角度之间).
生成此数据的代码:
import numpy as np
import matplotlib.pyplot as plt
jgal = np.array( [[-0.054875539726,-0.873437108010,-0.483834985808],\
[0.494109453312,-0.444829589425, 0.746982251810],\
[-0.867666135858,-0.198076386122, 0.455983795705]])
def s2v3(rra, rdec, r):
pos0 = r * np.cos(rra) * np.cos(rdec)
pos1 = r * np.sin(rra) * np.cos(rdec)
pos2 = r * np.sin(rdec)
return np.array([pos0, pos1, pos2])
def v2s3(pos):
x = pos[0]
y = pos[1]
z = pos[2]
if np.isscalar(x): x, y, z = np.array([x]), np.array([y]), np.array([z])
rra = np.arctan2(y, x)
low = np.where(rra < 0.0)
high = np.where(rra …Run Code Online (Sandbox Code Playgroud) 我正在使用matplotlib.pyplot.annotate在我的情节上绘制一个箭头,如下所示:
import matplotlib.pyplot as plt
plt.annotate("",(x,ybottom),(x,ytop),arrowprops=dict(arrowstyle="->"))
Run Code Online (Sandbox Code Playgroud)
我想使用箭头样式,一端是扁平线,另一端是箭头,所以组合样式"| - |" 和" - >"做一些我们称之为"| - >"的东西,但我无法弄清楚如何定义自己的风格.
我想我可能会尝试类似的东西
import matplotlib.patches as patches
myarrow = patches.ArrowStyle("Fancy", head_length=0.4,head_width=0.2)
Run Code Online (Sandbox Code Playgroud)
(现在应该与" - >"相同;我可以稍后调整样式)但是如何告诉plt.annotate使用myarrow作为样式?plt.annotate没有arrowstyle属性,而arrowprops = dict(arrowstyle = myarrow)也不起作用.
我也尝试在arrowprops字典中定义它,例如
plt.annotate("",(x,ybottom),(x,ytop),arrowprops=dict(head_length=0.4,head_width=0.2))
Run Code Online (Sandbox Code Playgroud)
但这给了我关于没有属性'set_head_width'的错误.
那么,我如何定义自己的pyplot.annotate样式呢?
我想在单击ListActivity中的项目时显示AlertDialog.我的应用程序在TabActivity的选项卡下显示ListActivity,并且AlertDialog显示没有问题.ListActivity(称为FavouritesActivity)非常直接来自Android文档,具有以下设置:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//... code to set the strings station, number, route, and direction
FavouritesActivity.this.confirmSend(position);
}
});
Run Code Online (Sandbox Code Playgroud)
然后
public void confirmSend(final int position) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure?")
.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//... some code to run here
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert …Run Code Online (Sandbox Code Playgroud) 我对mktime有一个简单的问题.我找到以下代码:
echo date("Y-M-d", mktime(11, 45, 0, 01, 05, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 06, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 07, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 08, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 09, 2014)); echo ", ";
Run Code Online (Sandbox Code Playgroud)
正在产生以下输出:
2014-Jan-05, 2014-Jan-06, 2014-Jan-07, 2013-Dec-31, 2013-Dec-31
Run Code Online (Sandbox Code Playgroud)
日期函数就是为了使它更具可读性; mktime返回的时间戳本身是错误的.的唯一的事情就是改变该月的一天,所以我不知道为什么会有这一天是7和8,为什么两者的8和9当日返回间的中断.
我已经检查过小时,分钟和秒不会改变错误的一天的结果,尽管它们确实改变了确切的时间戳.也就是说,上面的最后两行返回完全相同的时间戳(1388508300)但是如果我更改小时,则时间戳的相对变化是预期的.
如果上下文很重要,这是在WordPress安装中的PHP 5.3中运行.