Как мне изменить размер шрифта метки с помощью Matplotlib, Tinker и SubplotHost?

#python #numpy #matplotlib #data-visualization

#python #numpy #matplotlib #визуализация данных

Вопрос:

Обратите внимание, что я создаю график с вложенными метками осей. Что бы я ни пробовал, размер шрифта остается неизменным. В идеале я хотел бы иметь возможность присвоить каждому набору меток оси их собственный цвет и размеры шрифта.

 import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
from mpl_toolkits.axisartist.parasite_axes import SubplotHost

fig1 = plt.figure()
ax1 = SubplotHost(fig1, 111)
fig1.add_subplot(ax1)

# Some data
x = np.arange(1,6)
y = np.random.random(len(x))

# First X-axis
ax1.plot(x, y)
ax1.set_xticks(x)
ax1.set_xticklabels(['7up', 'cream', 'coke', 'rootb', 'cherryc'])
#ax1.xaxis.set_label_text('First X-axis') # Uncomment to label axis
ax1.yaxis.set_label_text("Sample data")

# Second X-axis
ax2 = ax1.twiny()
offset = 0, -25 # Position of the second axis
new_axisline = ax2.get_grid_helper().new_fixed_axis
ax2.axis["bottom"] = new_axisline(loc="bottom", axes=ax2, offset=offset)
ax2.axis["top"].set_visible(False)

ax2.set_xticks([0.0, 0.6, 1.0])
ax2.xaxis.set_major_formatter(ticker.NullFormatter())
ax2.xaxis.set_minor_locator(ticker.FixedLocator([0.3, 0.8]))
ax2.xaxis.set_minor_formatter(ticker.FixedFormatter(['weekly', 'daily']))

# Third X-axis
ax3 = ax1.twiny()
offset = 0, -50
new_axisline = ax3.get_grid_helper().new_fixed_axis
ax3.axis["bottom"] = new_axisline(loc="bottom", axes=ax3, offset=offset)
ax3.axis["top"].set_visible(False)

ax3.set_xticks([0.0, 1.0])
ax3.xaxis.set_major_formatter(ticker.NullFormatter())
ax3.xaxis.set_minor_locator(ticker.FixedLocator([0.5]))
ax3.xaxis.set_minor_formatter(ticker.FixedFormatter(['customer favs']))

plt.show()
  

вывод рисунка

Комментарии:

1. Попробуйте изменить цвет вашей оси следующим образом: установите другое значение matplotlib.rcParams['text.color'] перед назначением каждой оси. Если вы сделаете это, вы увидите, что ваш ax1 немного сложный в отличие от двух других: он содержит оба xaxis и yaxis . Надеюсь, это полезно.

Ответ №1:

Это не индивидуальная настройка, но все это настраивается в ‘xticks.labelsize’. Это: ‘xx-small, x-small, small, medium, средний, большой, x-large и xx-large,’

 plt.rcParams['xtick.labelsize'] = 'XX-large'
  

введите описание изображения здесь