我的极坐标图是什么样子的
我试图移动ytick标签,使它们与轴标签类似地对齐。例如,'PTS'标签水平对齐到其轴,但ytick标签向右移动。
对于y值标签,我使用set_rgrids()函数指定角度和标签值,并使用tick_params()函数指定标签属性,如旋转。但是,此函数不允许我设置标签的文本框对齐。
如何将y值向左移动,使其直接位于相应的轴标签下?
for i in range(N):
#rgrids() for y-labels, tick_params() for properties of y-labels
axes[i].set_rgrids(rgrids, angle=angles[i], labels=rlabels[i])
axes[i].tick_params('y', labelrotation=(angles[i]-180 if 90<angles[i]<270 else angles[i]))
axes[i].set_ylim(ymin, ymax)
axes[i].set_theta_offset(np.deg2rad(90))
#text() for axis label
axes[i].text(np.deg2rad(angles[i]), 1.08*ymax,cat[i], va="center", ha='center', size=13, rotation=(angles[i]-180 if 90<angles[i]<270 else angles[i]))
完整代码:
import numpy as np
import matplotlib.pyplot as pl
def normalize(val, min=0, max=100):
value = val-min
range = max-min
frac = float(value)/range
return frac*100
cat = ['PTS', 'FG%', 'FGM', '3PM', '3FG%']
N = len(cat)
angles = np.arange(0, 360, 360.0/N)
rcount = 9
ranges = [[5, 33], [30, 55], [3, 10.2], [0.1, 4.5], [22, 46]]
rlabels = [[0]*rcount] * N
ymin = 0
ymax = 100
for i in range(N):
size = ranges[i][1] - ranges[i][0]
step = float(size)/rcount
rlabels[i] = list(np.arange(ranges[i][0] + step, ranges[i][1] + step, step))
rlabels[i] = [round(x,1) for x in rlabels[i]]
step = (ymax - ymin)/float(rcount)
rgrids = list(np.arange(ymin + step, ymax + step, step))
rect = [0.05, 0.05, 0.8, 0.8]
fig = pl.figure(figsize=(7, 7))
axes = [fig.add_axes(rect, projection="polar", label="axes%d" % i) for i in range(N)]
axes[0].set_thetagrids(angles, labels=cat, fontsize=14, visible=False)#jesli visible=False to trzeba dodac recznie za pomocą ax.text()
axes[0].grid(color='gray', linewidth = 1)
for labels in rlabels:
labels[0] = ''
for i in range(N):
axes[i].set_rgrids(rgrids, angle=angles[i], labels=rlabels[i])
axes[i].tick_params('y', labelrotation=(angles[i]-180 if 90<angles[i]<270 else angles[i]))
axes[i].set_ylim(ymin, ymax)
axes[i].set_theta_offset(np.deg2rad(90))
axes[i].text(np.deg2rad(angles[i]), 1.08*ymax,cat[i], va="center", ha='center', size=13, rotation=(angles[i]-180 if 90<angles[i]<270 else angles[i]))
for i in range(1, N):
axes[i].spines["polar"].set_visible(False)
axes[i].patch.set_visible(False)
axes[i].grid("off")
axes[i].xaxis.set_visible(False)
我想你想定一个目标
ax.text(..., ha='left', rotation_mode="anchor", ...)
我试图绘制一个右扬升-赤纬,Python中的极地图,其中角度表示右扬升,半径赤纬,范围在±30之间。 我的代码是 很明显,我误解了极坐标图的工作原理,因为RA与θ=0的角度圆不对应。例如,我的一个点的RA=45.89度,但似乎没有一个点与此对应。 对我做错了什么有什么建议吗?
我在将图像转换为极坐标时遇到问题。在Photoshop中很容易:)所以这对我来说是一个新领域。 我有以下图片: 结果应该是这样的: 我在这里看了一下,了解了一些基本知识,但仍然对圆的平方有点困惑: 我几乎不知道如何重新绘制图像。还有一个警告:由于管理限制,我想避免使用像Numpy这样的外部库。
我正在尝试将极坐标的图像转换为笛卡尔坐标。 将图像转换为极坐标的示例显式执行-想要一个光滑的矩阵方法 我原以为使用上述方法是小菜一碟,但事实并非如此!!如果有人发现我的代码有错误,请告诉我! 我发现非常奇怪的是,当我改变phi时,它会做出根本性的改变,而不是以我期望的方式! 干杯
我想沿x轴水平移动一些记号的标签,而不移动相应的记号。 更具体地说,当使用
问题内容: 以下python代码应在[-pi / 2,pi / 2]范围内绘制r(theta)= theta。 生成图: 但是,我希望它会产生: r(θ)的负值似乎已被裁剪。如何使matplotlib绘制r(theta)的负值? 问题答案: 第一个情节似乎是正确的。它只是不显示负值。可以通过明确设置r轴的极限来克服此问题。 此行为基于以下假设:任何数量都应可绘制在极坐标图上,这可能对有关相对数量的
编辑:我决定把这个问题分成两部分,因为它实际上是两个问题:1。如何在MATLAB中绘制极曲面图(本问题)和2。如何将拟合极坐标数据点放入粗略(非极坐标)矩阵 我有一个包含某些灰色值(介于0和1之间的值)的矩阵。这些点存储在一个矩形矩阵中,但实际上数据点是通过旋转探测器获得的。这意味着我实际上有极坐标(我知道起始矩阵中每个像素的极坐标)。 我想制作一个数据点的极线图。我有下面的例子。 因为MATLA