7月python问题总结(主要是数据处理)
主要总结一下,项目可视化过程中的坑,以及解决方法
图片清晰的的设置
%config InlineBackend.figure_format = 'retina'#设置图片的高清度
%matplotlib inline #不需要指令plt.show()
读取txt文件 并进行处理
#names设置列名
#sep设置分割符 符合正则表达式
#engine暂时不太清楚
data_mi = pd.read_table("sms-call-internet-mi-2013-11-01.txt" ,names=['Square','Time','Country','SMS-in','SMS-out','Call-in','Call-out','Internet traffic'],sep='\s+',engine='python')
按照指定行进行求和
#指定行进行求和
#其中as_index用来取消分组格式
data_total = data.groupby(['Square','Time'],as_index=False).sum()
筛选指定列---query
三维柱状图的绘制方式(Matlab绘制更加方便)
数据的拼接
concat、append、merge
#其中append的速度可能比较慢
csv的存储
在存储的时候一定要设置index=False的选项,不然会将之前index存入,破坏数据
data_total.to_csv("data/data_total.csv",index =False)
画图的一些细节
-
设置中文字体以及字体大小,不然会出现乱码
# plt.rcParams['font.family'] = 'FangSong' # 设置字体为仿宋 plt.rcParams['font.size'] = 10 # 设置字体的大小为10 plt.rcParams['axes.unicode_minus'] = False # 显示正、负的问题 -
图例的显示:可以在图片里面也可以到图片外面
ax3.legend(loc=0,fontsize=8,bbox_to_anchor=(1.0,0.78),borderaxespad = 0.)
- 同时也能设定子图之间的距离
plt.subplots_adjust(left=0.125,
bottom=0.1,
right=0.9,
top=0.9,
wspace=0.2,
hspace=0.35)
- 加入显色条
对于显色还有很多参数,后面可以慢慢摸索
plt.imshow(dist,origin='lower',cmap='viridis_r')
plt.colorbar(shrink=0.83) # shrink 用于调整colorbar大小
对于归一化的理解
from sklearn.preprocessing import MinMaxScaler
def scaler_tool(dist):
scaler = MinMaxScaler(feature_range=(0,1))
scaler.fit(dist)
return abs(scaler.transform(dist)-1)
#上面sklearn的包是对每一列进行正则化 他的最大值取得是每一行或者列的最大值 而不是全局最大值
#下面这个归一化是取全局最大值
from sklearn.preprocessing import MinMaxScaler
def scaler_tool(dist):
for i in range(10):
for j in range(10):
dist[i][j] = (dist[i][j] - np.min(dist)) / (np.max(dist) - np.min(dist))
return abs(dist - 1)
同时这里也可以注意一下归一化对深度模型的作用: LSTM中的归一化与反归一化问题、预测未来值问题
图形的处理
- 图片一
- square 1 改名为序号为多少
- 图片间距的调整
- 选定四个区域/以及两个区域
- 线的宽度更改
- 11/15
- 图片二
- 从底层逻辑改,不要直接调包
- 递减显示,看是否有问题
- 图片三
- 颜色更换
- 网格保留
- 坐标轴显示
- 可以的话,画两个时隙,放在一个图中
- 图片四
- 流量标签不要串行
- dtw的计算方式重新更换
- ij小矩阵 每一个区域

浙公网安备 33010602011771号