2017-05-08 14 views
0

私はPython 2.7を使用しており、matplotlibパッケージを使用してプロットしています。私は一番上に伝説のあるプロットを持っています。プロットウィンドウをズームしてプロットの詳細を表示しようとすると、凡例がウィンドウから移動することがあります。私はなぜこれが起こるのか理解できません。しかし、これはいつも起こるわけではありません。私はコードを添付しました。リストx11、x22 ....、temp11、... temp25およびhumi11、... humi25は、データベースからのデータである。プロットが正しく表示されます。しかし、私はプロットウィンドウから移動する伝説の奇妙な状況の問題に直面しています。私はあなたの参照のためにイメージの部分を添付しました。親切にあなたの洞察を提供してください。Matplotlibプロットウィンドウをズームインする際にプロットの凡例がウィンドウの外に出る

これはプロットの通常の表示です。
click here to view

これはズーム後のプロットのビューです。凡例の部分がウィンドウの隅に表示されていることを確認してください。伝説の配置で

click here to view

よろしく

Sriniketh

import matplotlib 
import matplotlib.pyplot as plt,mpld3 
import matplotlib.dates as mdates 
import numpy as np 
from matplotlib.backends.backend_tkagg importFigureCanvasTkAgg,NavigationToolbar2TkAgg 
from matplotlib.backend_bases import key_press_handler 
from matplotlib.figure import Figure 
import tkMessageBox 
from drawnow import * 
from Tkinter import * 
import Tkinter as tk 
from tkinter import ttk 
from dateutil.parser import parse 
import decimal 
plt.subplot(211) 
plt.title('Temperatur') 
plt.plot((x11), (temp11), 'ro-', label='M1-Node 1') 
plt.plot((x12), (temp12), 'go-', label='M1-Node 2') 
plt.plot((x13), (temp13), 'bo-', label='M1-Node 3') 
plt.plot((x14), (temp14), 'co-', label='M1-Node 4') 
plt.plot((x15), (temp15), 'mo-', label='M1-Node 5') 
plt.plot((x21), (temp21), 'ro--', label='M2-Node 1') 
plt.plot((x22), (temp22), 'go--', label='M2-Node 2') 
plt.plot((x23), (temp23), 'bo--', label='M2-Node 3') 
plt.plot((x24), (temp24), 'co--', label='M2-Node 4') 
plt.plot((x25), (temp25), 'mo--', label='M2-Node 5') 

plt.ylabel('Temperatur Grad C') 
# plt.legend(loc='upper left') 
plt.legend(bbox_to_anchor=(0.985, 0.89), 
      bbox_transform=plt.gcf().transFigure) 
plt.grid(True) 

plt.subplot(212) 
plt.title('Relativ Luftfeuchtigkeit') 
plt.plot((x11), (humi11), 'ro-', label='M1-Node 1') 
plt.plot((x12), (humi12), 'go-', label='M1-Node 2') 
plt.plot((x13), (humi13), 'bo-', label='M1-Node 3') 
plt.plot((x14), (humi14), 'co-', label='M1-Node 4') 
plt.plot((x15), (humi15), 'mo-', label='M1-Node 5') 
plt.plot((x21), (humi21), 'rd-', label='M2-Node 1') 
plt.plot((x22), (humi22), 'gd-', label='M2-Node 2') 
plt.plot((x23), (humi23), 'bd-', label='M2-Node 3') 
plt.plot((x24), (humi24), 'cd-', label='M2-Node 4') 
plt.plot((x25), (humi25), 'md-', label='M2-Node 5') 
plt.ylabel('Relativ Luftfeuchtigkeit') 
plt.grid(True) 
master = var1.get() 
plt.suptitle("Temperatur und Luftfeuchtigkeit - %s " % (master)) 

plt.show() 

答えて

0

plt.legend(bbox_to_anchor=(0.985, 0.89), bbox_transform=plt.gcf().transFigure) 

あなたは場所の引数を指定するのを忘れていました。

plt.legend(loc=1, bbox_to_anchor=(0.985, 0.89), bbox_transform=plt.gcf().transFigure) 

this answerを参照して、プロットの外に凡例を配置する方法の詳細洞察力のために:あなたはフィギュア座標を使用しているので、この場合には、それはloc="upper right"またはloc=1を使用するように理にかなって。

+0

ありがとうございました。出来た !!! – Sri

関連する問題