python - 如何使用 matplotlib 在极坐标图上放置文本?
问题描述
这是 matplotlib Scatter plot onpolar axis文档中的一个演示
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
# Compute areas and colors
N = 150
r = 2 * np.random.rand(N)
theta = 2 * np.pi * np.random.rand(N)
area = 200 * r**2
colors = theta
fig = plt.figure()
ax = fig.add_subplot(projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)
我应该对这些代码做哪些修改?
另外,我也想放图而不是文字,可以吗?
解决方案
这是原始代码:
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
# Compute areas and colors
N = 150
r = 2 * np.random.rand(N)
theta = 2 * np.pi * np.random.rand(N)
area = 200 * r**2
colors = theta
fig = plt.figure()
ax = fig.add_subplot(projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)
如果添加这两行:
plt.text(0.67, 0.9, 'I am cartesian coordinate', transform=plt.gcf().transFigure)
plt.text(np.pi, r[len(r)-1], 'I am polar coordinate')
你会得到
如果您添加此代码:
im = Image.open('smurf.png')
newax = fig.add_axes([0.5, 0.5, 0.2, 0.2], zorder=1)
newax.imshow(im)
newax.axis('off')
newax = fig.add_axes([0.3, 0.3, 0.2, 0.2], zorder=1)
newax.imshow(im)
newax.axis('off')
你会得到
但它需要转换计算才能得到极坐标
推荐阅读
- jquery - Bootsrap jquery Dropdown - 如何在内容区域中显示数据值
- apache-kafka - 带有 min.insync.replicas 的 NotEnoughReplicasException 的意外行为
- http - 谁负责 OSI 中的表示层和会话层?
- webpack - 如何在 Nextjs 中使用 Workbox 实现自定义 Service Worker
- symfony - Sylius:如何使用自定义控制器创建我自己的自定义资源而不会出现“无法自动装配”异常?
- python - 如何在 HTML {{ post.published_date }} 标签处省略时间?
- javascript - 在不丢失数据的情况下返回上一页
- android - 如何正确关闭套接字及其 InputStream?
- python - 我怎么能做到这一点,但骰子的数量是可变的?
- json - Swagger.json 到 xslt 转换器