如何更改轴和标签颜色?

时间:2020-08-24 19:13:03

标签: python matplotlib

我足够新来使python既危险又愚蠢。

我有以下代码,我想从计算机上的某个位置读取文本文件,在本例中为台式机。它可以绘制一个图,这还可以,但是我想更改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()

1 个答案:

答案 0 :(得分:1)

plt.xlabel()plt.title()接受一个color=...参数来设置颜色。使用plt.xlabel(..., labelpad=10),您可以调整标签和刻度标签之间的填充。 labelpadpoints进行度量,这与表示字体大小(例如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()

example plot

PS:您还可以更改刻度标签的颜色,例如plt.xticks(rotation=90, color='crimson')

另外,tick_params()可能有助于更改刻度的许多属性。