matplotlib 如何更改坐标轴和标签颜色?

tcomlyy6  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(315)

我有下面的代码,我想读取一个文本文件从某个位置在我的计算机上,在本例中它是桌面。它制作了一个图,这是可以的,但我想改变颜色的x,y轴标签以及标题。我还想在x & y轴标签和图表轴之间添加一些空间,这样它就更具可读性了。
我试过很多方法,但都不起作用,我真的不知道为什么。有人能看一下这些吗?

import matplotlib.pyplot as plt

filename = r"C:\Users\my_name\Desktop\my_text_file.txt"

with open(filename) as file:
    entries = [x.split(",") for x in file.readlines()]  # Read the text, splitting on comma.
    entries = [(x[0], int(x[1])) for x in entries]  # Turn the numbers into ints.
    entries.sort(key=lambda x: x[1], reverse=True)  # Sort by y-values.

x_coords = [x[0] for x in entries]
y_coords = [x[1] for x in entries]

plt.xticks(rotation=90)

plt.bar(x_coords, y_coords)  # Draw a bar chart
plt.tight_layout()    # Make room for the names at the bottom

# The next two lines adjust the space around the top, bottom, left & right around the plot
plt.plot()
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.4)

plt.xlabel('The Names', fontsize=15)
plt.ylabel('Frequency of Visits', fontsize=12)

plt.title('Title', fontsize=15)
plt.subplots_adjust(top=0.85)

plt.show()
ao218c7q

ao218c7q1#

plt.xlabel()plt.title()接受color=...参数来设置颜色。使用plt.xlabel(..., labelpad=10),您可以调整标签和ticklabels之间的填充。labelpad的单位是points,它与表示字体大小的单位相同(例如,12 point字体)。标题的相应填充被简称为pad=
请注意,如果您在最后调用plt.tight_layout(),则对subplots_adjust的调用不是必需的(它们的值被plt.tight_layout()简单地覆盖)。

from matplotlib import pyplot as plt
import random

xcoords = ['Nigeria', 'Ethiopia', 'Egypt', 'DR Congo', 'Tanzania', 'South Africa', 'Kenya', 'Uganda',
           'Algeria', 'Sudan', 'Morocco', 'Angola', 'Mozambique', 'Ghana', 'Madagascar']
ycoords = [random.randint(1, 10000) for _ in xcoords]
plt.bar(xcoords, ycoords)
plt.xticks(rotation=90)

plt.xlabel('The Names', fontsize=15, color='turquoise', labelpad=10)
plt.ylabel('Frequency of Visits', fontsize=12, color='limegreen', labelpad=15)

plt.title('Title', fontsize=15, color='purple')
plt.tight_layout()
plt.show()

PS:您也可以更改刻度标签的颜色,例如plt.xticks(rotation=90, color='crimson')
此外,tick_params()可能有助于更改刻度的许多属性。

相关问题