Формат скобок легенды Python Windrose и местоположение
Ниже я построил розу ветров с помощью "Роза ветров", основываясь на этом. Во-первых, легенда покрывает часть розы, но когда я пытаюсь использовать loc
чтобы установить его местоположение, легенда исчезает.
Во-вторых, легенда закрывающих скобок неверна, т.е. [0.0 : 1.0[
Любая идея, как я могу это исправить [0.0 : 1.0]
код:
from windrose import WindroseAxes
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.read_csv("C:\2007_GG_wind rose.csv")
ws_SAR = df[' SARwind_10m']
wd_SAR = df['wind direction SAR model_int']
ws_mde = df['gg_mde']
wd_mde = df['wind direction MDE ']
ax=WindroseAxes.from_ax()
ax.bar(wd_SAR,ws_SAR,normed=True, opening=0.8, edgecolor='white')
ax.set_legend()
plt.title("SAR 10m U",y=1.08) #y=1.08 raises the title
1 ответ
Скопируйте оригинальный файл windrose.py из папки python в нужный вам рабочий каталог. Назовите копию как-нибудь еще, например windrose_edit.py. Отредактируйте файл и найдите функцию get_labels(). Я так отредактировал, но вы можете использовать его в своих целях.
def get_labels():
labels = np.copy(self._info['bins'])
labels = ["%.1f : %0.1f" %(labels[i], labels[i+1]-0.1) \
for i in range(len(labels)-1)]
return labels
Также вы можете увеличить размер шрифта легенды несколькими строками ниже.
def set_legend(self):
l = self.legend(borderaxespad=-0.10)
plt.setp(l.get_texts(), fontsize=12)
Наконец, импортируйте отредактированный файл, например, импортируйте windrose_edit как wind2
и использовать его с
winddir_ = yourdata
windspeed_ = yourdata
fig = plt.figure(figsize=(12, 8), dpi=100, facecolor='w', edgecolor='w')
rect = [0.1, 0.1, 0.8, 0.8]
ax = wind2.WindroseAxes(fig, rect, facecolor='w')
ax.contourf(winddir_, windspeed_, bins=6, normed=True, cmap=cm.RdYlBu_r)
ax.set_legend()
это не красиво, хотя относительно быстрый и ленивый обходной путь