使用python

时间:2018-05-21 17:35:08

标签: python python-3.x matplotlib

我正在使用以下代码在一个图表中绘制两个图表。而且我也希望在图表本身的某个点上看到X轴值。因为我在一个图中绘制两个图,所以我是一个点的两个值。我想清楚地看到这两个价值观。但是当值越来越近时,它们会相互碰撞,并且数值不清楚。

import matplotlib.pyplot as plt
plt.rcParams.update(plt.rcParamsDefault)
plt.style.use(['default'])
a=[1.23,2.24,3.12,1.11,2.46]
b=[1.24,2.23,3.15,1.25,2.78]
xc=range(5)
plt.figure(figsize=(5,5))
for x,y in zip(xc,a):
    plt.text(x, y, '%.2f' % y, ha='center', va= 'bottom')
for x,y in zip(xc,b):
    plt.text(x, y, '%.2f' % y, ha='center', va= 'bottom')
plt.plot(xc,a)
plt.plot(xc,b)
plt.xlabel('num of Epochs')
plt.ylabel('loss')
plt.title('train_loss vs val_loss')
plt.legend(['train','val'])

请帮我编写代码以更好地显示图表

1 个答案:

答案 0 :(得分:1)

更改plt.text()配置。

import matplotlib.pyplot as plt
plt.rcParams.update(plt.rcParamsDefault)
plt.style.use(['default'])
a=[1.23,2.24,3.12,1.11,2.46]
b=[1.24,2.23,3.15,1.25,2.78]
xc=range(5)
plt.figure(figsize=(5,5))
for x,y in zip(xc,a):
    plt.text(x, y, '%.2f' % y, ha='right', va= 'bottom')
for x,y in zip(xc,b):
    plt.text(x, y, '%.2f' % y, ha='left', va= 'top')
plt.plot(xc,a)
plt.plot(xc,b)
plt.xlabel('num of Epochs')
plt.ylabel('loss')
plt.title('train_loss vs val_loss')
plt.legend(['train','val'])
plt.show()

输出:

enter image description here

您可以使用color属性提供颜色:

for x,y in zip(xc,a):
    plt.text(x, y, '%.2f' % y, ha='right', va= 'bottom', color='blue')
for x,y in zip(xc,b):
    plt.text(x, y, '%.2f' % y, ha='left', va= 'top', color='orange')