在绘图中看不到的值

时间:2018-08-21 09:04:56

标签: python matplotlib

借助以下代码,我正在绘制图形;但是,这些值不清晰可见;它们与图形混合在一起:

for x111,y1 in zip(x1,loss_list):
    plt.text(x111, y1, '%.2f' % y1, ha='right', va= 'bottom', color='blue')
for x112,y2 in zip(x1,val_loss_list):
    plt.text(x112, y2, '%.2f' % y2, ha='left', va= 'top', color='orange')
plt.plot(xc,train_loss_history)
plt.plot(xc,val_loss_history)
plt.xlabel('num of Epochs')
plt.ylabel('loss')
plt.title('train_loss vs val_loss')
#plt.grid(True)
plt.legend(['train','val'])
plt.show() 

其中x111和其他值以及列表是我从代码中获得的。并跟随剧情 enter image description here

如何使可视化更具可读性?

3 个答案:

答案 0 :(得分:2)

您可以更改文本的颜色和大小:size='x-small'

for x111,y1 in zip(x1,loss_list):
    plt.text(x111, y1, '%.2f' % y1,color='black',horizontalalignment='center',verticalalignment='bottom')
for x112,y2 in zip(x1,val_loss_list):
    plt.text(x112, y2, '%.2f' % y2,color='black',horizontalalignment='center',verticalalignment='bottom')

答案 1 :(得分:1)

您也许可以调整所用颜色的Alpha值(透明胶片)?

也许是这样吗?

for x111,y1 in zip(x1, loss_list):
    plt.text(x111, y1, '%.2f' % y1, ha='right', va='bottom', color='blue')
for x112,y2 in zip(x1, val_loss_list):
    plt.text(x112, y2, '%.2f' % y2, ha='left', va='top', color='black')  # changed to black, but you can try some other color to see if you like it better
plt.plot(xc, train_loss_history, color='blue', alpha=0.5)
plt.plot(xc, val_loss_history, color='orange', alpha=0.5)
plt.xlabel('num of Epochs')
plt.ylabel('loss')
plt.title('train_loss vs val_loss')
#plt.grid(True)
plt.legend(['train', 'val'])
plt.show() 

您没有提供数据,因此很难调整值以最大化可读性。

答案 2 :(得分:1)

我最近遇到了同样的问题。我的解决方案不是很好,但是可以解决

  • 没有太多的值
  • 不需要动态地进行操作,也就是说,您只有一个数据集

希望有人也可以为您提供更好的动态解决方案,但这至少可以暂时解决您的问题。

解决方案是简单地向每个点添加y偏移。例如

values()

如果您需要动态执行此操作,则一种方法可能是查看与绘图位置“接近”的y值,然后选择合适的内容。例如。具有适当窗口大小的y值的简单“最大池”。