我想在每一行的左边添加一个文本,但我不能这样做。我试过用
plt.annotate('Distance $\leq6.5$ $km$', (1, 1))
plt.text(1, 1, 'Distance $\leq6.5$ $km$')
字符串
但它总是导致在最后一个子情节中写入,如屏幕截图所示。
的数据
以下是我目前的计划:
import numpy as np
import numpy.random as rd
import matplotlib.pyplot as plt
Dic_Values = {'inf_6.5':{'v_moy':rd.randint(15,25, 20), 'cad':rd.randint(75,100,20), 'f_moy':rd.randint(130,180,20)},
'6.5_9.5':{'v_moy':rd.randint(15,25, 11), 'cad':rd.randint(75,100,11), 'f_moy':rd.randint(130,180,11)},
'sup_9.5':{'v_moy':rd.randint(15,25, 4), 'cad':rd.randint(75,100,4), 'f_moy':rd.randint(130,180,4)}}
def bilan_course():
types = list(Dic_Values.keys())
c = 0
plt.figure(figsize=(21,7))
Labels = ['S_moy', 'Cad', 'F_moy']
Y_axis = ['S (in $km \cdot h^{-1}$)', 'Cad (in $step\cdot min^{-1}$)', 'F (in $beat\cdot min^{-1}$)']
for ty in types:
Donnees = Dic_Values[ty]
Cles = list(Donnees.keys())
for v in range(len(Cles)):
plt.subplot(int('33'+str(3*c+v+1)))
plt.plot(Donnees[Cles[v]], label=Labels[v])
plt.xlabel('Course')
plt.ylabel(Y_axis[v])
plt.title(Labels[v])
plt.ylim(0, max(Donnees[Cles[v]])*1.1)
plt.legend(loc='best')
c+=1
plt.subplots_adjust(left=0.1, bottom=0.085, right=0.95, top=0.882, wspace=0.25, hspace=0.5)
plt.annotate('Distance $\leq6.5$ $km$', (1, 1), fontsize=12)
plt.suptitle('Summary', fontweight='bold')
plt.show()
型
1条答案
按热度按时间zmeyuzjn1#
我想是时候让自己熟悉matplotlib的“expicit”API了:-)
(see API上的matpltolib文档)
简而言之,如果你使用
plt.< do something >
,matpltolib将总是尝试识别最近使用的轴并使用它!要处理显式轴,请调用实际要使用的轴对象上的方法!这里有一个快速的片段,应该可以帮助你开始:
字符串
x1c 0d1x的数据