python - 极坐标图中的粗体注释和刻度标签

标签 python matplotlib polar-coordinates

我正在 matplotlib 中绘制极坐标散点图,并在每个数据点附近添加注释。

我需要将注释设置为粗体(因为它们重叠),并将 r 轴刻度标签设置为粗体(以及垂直线右侧的轴标签)。

我的代码:

import numpy as np
import matplotlib.pyplot as plt

month = ['Feb-16','Mar-16', 'Apr-16', 'May-16', 'Jun-16', 'Jul-16',
        'Aug-16', 'Sep-16', 'Nov-16', 'Dec-16', 'Jan-17']
phi = np.array([3.272, 3.185, 3.159, 2.13, 2.879, 2.617, 2.705, 
                2.53, 3.228, 3.054, np.pi]) 
r = np.array([1006.225, 1006.083, 1007.189, 1007.0614, 1002.909, 1001.053, 
              1001.953, 1006.609, 1011.403, 1013.885,1013.391])




fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')
c = ax.scatter(phi, r, alpha=0.75)
ax.set_ylim(1000,1014)
ax.set_xlim(np.pi/2,(7/6.)*np.pi)
ax.yaxis.set_tick_params(labelsize=12)
for i in range(len(r)): 
    ax.annotate(month[i],
            xy=(phi[i], r[i]))
lines, labels = ax.set_thetagrids( range(90,240,30),
                           ('12:00', '11:00', '10:00','9:00', '8:00'),
                           fontweight='bold')

plt.show()

产生:

enter image description here

最佳答案

目标似乎是让一切变得大胆。这可以通过 rcParams 轻松实现:

plt.rcParams["font.weight"] = "bold"

enter image description here

要单独控制注释的字体粗细,您可以使用 fontweight 参数

ax.annotate(..., fontweight="bold")

控制 y 刻度标签的字体粗细,您之前可以这样做

plt.setp(ax.get_yticklabels(), fontweight="bold")

然而,这在 matplotlib 2.2 中不再起作用。我目前不知道替代方案是什么(或者是否有可能)。

如果您有一个完整的圆形图(即,如果您在此处省略了 xlim),您也可以使用 set_rgrids ,例如

ax.set_rgrids(range(1000,1014,2),range(1000,1014,2), fontweight="bold")

但这对于楔形图来说似乎被忽略了。

关于python - 极坐标图中的粗体注释和刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50656253/

相关文章:

python - 有没有一种简单的方法来判断文件指针所在的行号?

python - 如何在极坐标 matplotlib 图上绘制带有文本(即标签)的水平线? (Python)

python - 覆盖的属性访问不起作用(如预期)

python - pandas Dataframe 的不同颜色取决于索引号

python - 绘制半透明线/16 位 alpha 值

python - 使用 matplotlib 求解多边形中的点

python - 使用极坐标在 Python 中绘制相位图

algorithm - 极平面中的线段方向

python pandas用iterrows迭代数据帧行很慢,可以以某种方式替换吗?

python - 如何以优雅的Pythonic方式更有效地组合多个 '.md'文件?