2016-05-26 16 views
3

私は図を90度回転させる。問題は凡例も回転することです。図を回転させるが、凡例は回転させない。

数字だけを回転させる方法はありますか? 凡例の回転属性を90度に設定することもできます。私はあなたが回転のいくつかの用途のためにデモの例についてfloating axesを確認することができます

答えて

2

plt.xticks(range(len(mu_mse.index)), x_labs, rotation='vertical')を使用しています例えばxticksについては

。この場合、軸を回転させるだけで凡例の通常の呼び出しを行うのではなくなります。

あなたは、プロットの限界、伝説の位置の調整を行う必要がありますというように、この例で簡単に見はあなたにその背後にあるロジックを提供する必要があります:

from matplotlib.transforms import Affine2D 
import mpl_toolkits.axisartist.floating_axes as floating_axes 
import numpy as np 
import mpl_toolkits.axisartist.angle_helper as angle_helper 
from matplotlib.projections import PolarAxes 
from mpl_toolkits.axisartist.grid_finder import (FixedLocator, MaxNLocator, 
               DictFormatter) 
import matplotlib.pyplot as plt 


def setup_axes1(fig, rect): 
    """ 
    A simple one. 
    """ 
    tr = Affine2D().scale(2, 1).rotate_deg(30) 

    grid_helper = floating_axes.GridHelperCurveLinear(
     tr, extremes=(0, 100, 0, 100)) 

    ax1 = floating_axes.FloatingSubplot(fig, rect, grid_helper=grid_helper) 
    fig.add_subplot(ax1) 

    aux_ax = ax1.get_aux_axes(tr) 

    grid_helper.grid_finder.grid_locator1._nbins = 4 
    grid_helper.grid_finder.grid_locator2._nbins = 4 

    return ax1, aux_ax 

fig = plt.figure() 

x = range(100) 
y = x + np.random.randint(-10,10,100) 
ax1, aux_ax1 = setup_axes1(fig, 111) 
aux_ax1.scatter(x,y,c='green',label='green') 
aux_ax1.scatter(y,x,c='purple',label='purple') 
ax1.legend() 

plt.show() 

この特定のレシピ私の図は、4つのサブプロットで構成されている場合、私はそれを使用することができますどのように

Rotated axis but with un-rotated legend in matplotlib

+0

:この中に結果が(この答えの上部にあるリンクから適応しますか)? – Donbeo

+0

@Donbeo実際、私が答えの先頭に与えたリンクの元の例は、3つのサブプロットが付いています(デモンストレーション目的で例を単純化しました)。そこに行くと、各プロットのセットアップ機能と、サブプロットへの共通の呼び出しが表示されます。通常は何をしますか?1つ以上のプロットに浮動軸(これらの設定関数)を追加します。 – armatita

関連する問題