python – Matplotlib:字幕位置错误,图例不可见

python – Matplotlib:字幕位置错误,图例不可见,第1张

概述我有五个列表,我打算在两个单独的子图中绘制.在子图1中我想要列表1,2,3和4;在子图2中我想要列表4和5.这些是列表和用于设置x标签的event_index. event_index=['event 1','event 2','event 3','event 4','event 5','event 6','event 7','event 8','event 9','event 10']list 我有五个列表,我打算在两个单独的子图中绘制.在子图1中我想要列表1,2,3和4;在子图2中我想要列表4和5.这些是列表和用于设置x标签的event_index.

event_index=['event 1','event 2','event 3','event 4','event 5','event 6','event 7','event 8','event 9','event 10']List1 = [0.7,0.8,0.9,0.7,0.6,1.0,0.9]List2 = [0.2,0.3,0.1,0.0,0.2,0.1]List3 = [0.4,0.4,0.5,0.4]List4 = [78,87,77,65,89,98,74,94,85,73]List5 = [16,44,14,55,34,36,76,54,43,32]

为了生成两个子图,我使用以下代码:

fig = plt.figure() #Creates a new figureax1 = fig.add_subplot(211) #First subplot: List 1,3,and 4ax2 = ax1.twinx() #Creates a twin y-axis for plotting the values of List 4line1 = ax1.plot(List1,'bo-',label='List1') #Plotting List1line2 = ax1.plot(List2,'go-',label='List2') #Plotting List2line3 = ax1.plot(List3,'ro-',label='List3') #Plotting List3line4 = ax2.plot(List4,'yo-',label='List4') #Plotting List4ax1.set_ylim(0,1)ax1.set_xlim(1,len(event_index)+1)ax1.set_ylabel('Some values',Fontsize=12)ax2.set_ylabel('% values',Fontsize=12)ax2.set_ylim(0,100)ax2.set_xlim(1,len(event_index)+1)ax3 = fig.add_subplot(212) #Second subplot: List 4 and 5ax3.set_xlim(1,len(event_index)+1)ax3.set_ylabel('% values',Fontsize=12)#Plotting Footprint % and Critical Cells %ax3.plot(List4,label='List4')line5 = ax3.plot(List5,'mo-',label='List5')#Assigning labelslines = line1+line2+line3+line4+line5labels = [l.get_label() for l in lines]ax3.legend(lines,labels,loc=(0,-0.4),ncol=5) #The legend location. All five serIEs are in the same legend.ax3.set_xlabel('events')Title_string=('Some trends')subTitle_string=('Upper panel: List 1,and 4 | Lower panel: List 4 and 5')plt.supTitle(Title_string,y=0.99,Fontsize=17)plt.Title(subTitle_string,Fontsize=8)fig.tight_layout()plt.show()

我得到的是这个:

一些问题:

>字幕不高于第一个子图,但高于第二个子图
>我看不到/读取我想要居中的图例,但是在子图2的x标签下面
>我的所有列表都有len = 10,但只绘制了9个值
>可能,我想摆脱第二个子图中的y轴刻度
>我希望图表标题,一些趋势,不要“粘”到第一个子图

我怎么能改善我的图表?谢谢!

解决方法 >使用ax1.set_Title绘制字幕,而不是plt.Title(因为它将绘制最后一个活动子图上的标题)
>我在最后一个问题中向您展示了如何为底部的传奇腾出空间.你需要fig.subplots_adjust(底部= 0.3)(你可能需要调整0.3)
>你只有9分,因为你通过将xlim设置为(1,len(List)1)来削减第一个,因为python索引从0而不是1.而是创建一个列表以绘制为x值:

x = range(1,len(List1)+1)ax1.plot(x,List1)

>使用ax3.yaxis.set_ticks_position(‘left’)仅绘制左侧的刻度并在右侧将其关闭
>你可以移动这个增加y参数,例如

plt.supTitle(Title_string,y=1.05,Fontsize=17)
总结

以上是内存溢出为你收集整理的python – Matplotlib:字幕位置错误,图例不可见全部内容,希望文章能够帮你解决python – Matplotlib:字幕位置错误,图例不可见所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存