簡體   English   中英

極坐標圖中的粗體注釋和刻度標簽(matplotlib)

[英]Bold annotations and tick labels in polar plots (matplotlib)

我正在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()

產生:

在此處輸入圖片說明

有什么建議么?

謝謝!!

似乎目的是使所有內容都變得大膽。 這可以通過rcParams輕松實現:

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

在此處輸入圖片說明

要僅控制批注的字體重量,可以使用fontweight參數

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

要控制y ticklabel的字體粗細,您以前可以做

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")

但這似乎在楔形圖中被忽略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM