Matplotlib подзаголовки и название [дубликат]

Вот небольшая небольшая функция, которую я хотел бы использовать, чтобы нарезать:

def rename(data, oldnames, newname): 
    if type(oldnames) == str: #input can be a string or list of strings 
        oldnames = [oldnames] #when renaming multiple columns 
        newname = [newname] #make sure you pass the corresponding list of new names
    i = 0 
    for name in oldnames:
        oldvar = [c for c in data.columns if name in c]
        if len(oldvar) == 0: 
            raise ValueError("Sorry, couldn't find that column in the dataset")
        if len(oldvar) > 1: #doesn't have to be an exact match 
            print("Found multiple columns that matched " + str(name) + " :")
            for c in oldvar:
                print(str(oldvar.index(c)) + ": " + str(c))
            ind = input('please enter the index of the column you would like to rename: ')
            oldvar = oldvar[int(ind)]
        if len(oldvar) == 1:
            oldvar = oldvar[0]
        data = data.rename(columns = {oldvar : newname[i]})
        i += 1 
    return data   

Вот пример того, как это работает:

In [2]: df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=['col1','col2','omg','idk'])
#first list = existing variables
#second list = new names for those variables
In [3]: df = rename(df, ['col','omg'],['first','ohmy']) 
Found multiple columns that matched col :
0: col1
1: col2

please enter the index of the column you would like to rename: 0

In [4]: df.columns
Out[5]: Index(['first', 'col2', 'ohmy', 'idk'], dtype='object')
18
задан Vincent 7 May 2013 в 13:58
поделиться

3 ответа

Кажется, что нет чистого способа установить это прямо (но, возможно, стоит добавить запрос функции, чтобы добавить это), однако название является всего лишь художником text, поэтому вы можете его охватить и изменить.

#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()

должен сделать трюк. Настройте 1.05 по своему вкусу.

29
ответ дан Maljam 24 August 2018 в 22:08
поделиться

Использование rcParams:

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20 

, где 20 - отступы между графиком и заголовком.

Из https://matplotlib.org /users/customizing.html

11
ответ дан bmorgan 24 August 2018 в 22:08
поделиться

С помощью matplotlib 2.2+ вы можете использовать ключевое слово argument pad:

ax.set_title('Title', pad=20)

Отрегулируйте pad, пока вы не будете довольны позицией заголовка оси. Преимущество этого метода с использованием rcParams заключается в том, что он изменяет только этот заголовок одной оси.

2
ответ дан Thucydides411 24 August 2018 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: