seaborn画图--不同的版本不一样--这个是0.9.0版本

 

参考文献:这个更详细,本文比较简略

https://blog.csdn.net/u013317445/article/details/88175366#snsrelplot_7

 

 

 

1 初步使用:画轨迹点-或者线形图

注意:这里画一个轨迹点非常容易,但是要是画多个轨迹点怎么办?

如果我将所有船的轨迹都搞到一个dateframe里面会是个什么样子?

如果那样的话,我画图代码就不方便了,必须这么做:经纬度不分本船和目标船,需要另外添加一列说明这是本船还是目标船

可以通过下面的代码进行拼接

pd.concat([df1, df4], axis=1)

本文主要基于seaborn进行画图,比如画轨迹和matplotlib类似,3条语句就搞定了,replot在本人的另一篇博客也有讲解,记得还有一个类似的函数

relplot ==0.9.0 才有这个函数,高版本没有这个函数
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
# 数据
datefram = pd.read_csv("./data/OS_send_to_ECDI.csv")
# matplotlib画法
# plt.plot(datefram["OwnShip_Longitude"],datefram["OwnShip_Latitude"])
sns.relplot(x="OwnShip_Longitude", y="OwnShip_Latitude", kind="line", data=datefram, ci=None)
# 可以手动设置label但是一般不用,因为他自动设置列名
# plt.xlabel(u'times',) # 不能使用中文,maplotlib处理方法也不好使
# plt.ylabel(u'TargetShip_Collision',)
plt.show()

下面代码运行效果

例子2

# coding: utf-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from collections import OrderedDict
# %matplotlib inline
# plt.rcParams['font.sans-serif']=['SimHei']   #这两行用来显示汉字
# plt.rcParams['axes.unicode_minus'] = False


dataframe=pd.read_csv('TargetShip_information.csv')
sns.relplot(x='time', y='DCPA',  data=dataframe, hue='TargetShip')
sns.relplot(x='time', y='TCPA',  data=dataframe, hue='TargetShip')
plt.show()

 

设置水平线,标签,注释

# coding: utf-8
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

import seaborn as sns
plt.rcParams['font.sans-serif']=['SimHei']   #这两行用来显示汉字
plt.rcParams['axes.unicode_minus'] = False
dateframe = pd.read_csv('TargetShip_information.csv')
sns.relplot(x='time', y='distance',  data=dateframe, hue='TargetShip',kind="line")
# dateframe['every_decision_time'].plot(x = 'x',y ='y')
# plt.plot([0,1000],[0.28,0.28],linestyle= '--')
plt.axhline(y=0.28,ls=":",c="b")#添加水平直线
# plt.yticks((0.28),('0.28'))
plt.yticks((0.28,1,2,3,4,5))
plt.text(1200, 0.3, "船舶安全领域半径", size = 15,\
         # family = "fantasy", # 这个不能显示汉字,显示汉字就不要了
         color = "r", style = "italic", weight = "light",\
         # bbox = dict(facecolor = "r", alpha = 0.2) # 在字的外面加上框框
         )
plt.xlabel('时间/秒')
plt.ylabel(u'距离本船的距离/海里')
plt.show()

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值