使用matploit绘制散点图

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties
import matplotlib.ticker

#读取文件中的数据
#line=[]
line1=[]
Parameters=[]
Accuracy=[]
text1=[]
with open("F:\data.txt",'r') as f:
    lines=f.readlines() #读取文件中的每一行数据
for i in range(0,len(lines)):
   line1.append(lines[i].split(" ")) #将每一行的数据使用空格分割成列表
N=len(line1)
for i in range(0,N-1):
    Parameters.append(line1[i][2]) #生成横坐标数据
    Accuracy.append(line1[i][1])  #生成纵坐标数据
    text1.append(line1[i][0])  #设置数据标签
fig,ax = plt.subplots(figsize=(10,10),dpi=72)  #创建画布
Parameters=[65.7,44,0.4,0.94,0.76,0.68,7.8,0.35,0.48,0.84]
Accuracy=list(map(float,Accuracy))  #将纵坐标的数据有字符形转换成数字型
print(text1)
size=[3178.4,5270.4,458.3,470.6,270.1,272.2,470.3,467.1,170.0,160.0] #设置每个数据点的大小
color=np.array(["#ff6633","#99ff33","#660066","#FF6EB4","#B0E0E6","#6E8B3D","#218868","#424242","#8B0000","#8B0000"])  #设置每个点的颜色
align=np.array(["left","left","right","left","right","right","left","right","right","left"])  #设置每个点标签的位置,垂直对齐方式
vertical=np.array(["center","center","center","center","bottom","center","center","center","bottom","center"]) #设置每个点的水平对齐的方式
for i in range(0,N-1):
    plt.annotate(text1[i], xy=(Parameters[i], Accuracy[i]), xytext=(Parameters[i] + 0.11, Accuracy[i] + 0.11), fontsize=14,horizontalalignment=align[i])
    #ax.text(Parameters[i]*1.01,Accuracy[i]*1.01,text1[i],fontsize=10,verticalalignment=vertical[i], horizontalalignment=align[i],rotation=0) #为每一个点添加标签
plt.ylim(ymax=85,ymin=50) #设置y轴的坐标轴刻度,默认均匀分布
plt.xlim(xmin=0.1,xmax=1000) #设置x轴的坐标刻度这里我们采用对数刻度
ax.set_xscale('log')
plt.xticks((0.1,1,10,100,1000),['0','1','10','100','1000'])
plt.scatter(Parameters,Accuracy,size,c=color) #绘制散点图
ax.set_xlabel('Parameters(Million)',fontsize=20)  #设置X轴和Y轴坐标轴名称
ax.set_ylabel('Class-wise mIoU(%)',fontsize=20)
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值