Python做图系列一

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Python做图笔记


一、csv / txt的操作(合并)

import pandas as pd
a=pd.read_csv("Pdata2_32.txt",sep=',',encoding= 'utf-8',parse_dates={'birthday':[0,1,2]},
  #parse_dates参数通过字典实现前三列的日期解析,并合并为新字段birthday
  skiprows=2,skipfooter=2,comment='#',thousands='&',engine='python')
print(a)
a.to_csv('gym.txt')

这里是数据集
dasdnjkadasjc
sasdasndkaslkdasll
year,month,day,gender,name,income
2019,3,7,男,张三,6&000
2019,5,2,男,李四,13&000
2019,2,1,女,王玲,8&00
ajsdsknkjsscn
cnajskcdscda不影响结果

二、提取csv数据

代码如下(示例):

import pandas as pd
a=pd.read_excel("Pdata2_33.xlsx",usecols=range(1,4))  #提取第1列到第4列的数据
b=a.values  #提取其中的数据
c=a.describe()  #对数据进行统计描述
print(c)

三、复制

import pandas as pd
import numpy as np
a=pd.read_excel("Pdata2_33.xlsx",usecols=range(1,4)) #提取第1列到第4列的数据
b=a.values  #提取其中的数据
#生成DataFrame类型数据
c=pd.DataFrame(b,index=np.arange(1,11),columns=["用户A","用户B","用户C"])
f=pd.ExcelWriter('Pdata2_34.xlsx')  #创建文件对象
c.to_excel(f,"sheet1")  #把c写入Excel文件
c.to_excel(f,"sheet2")  #c再写入另一个表单中
f.save()

四、 筛选

import pandas as pd
import numpy as np
a=pd.read_excel("Pdata2_33.xlsx",usecols=range(1,4)) #提取第1列到第4列的数据
b1=a.iloc[np.arange(6),[0,1]]  #通过标号筛选数据
b2=a.loc[np.arange(6),["用户A","用户B"]]  #通过标签筛选数据

五、柱状图

import numpy as np, pandas as pd
from matplotlib.pyplot import *
a=pd.read_excel("Pdata2_33.xlsx",usecols=range(1,4))  #提取第2列到第4列的数据
c=np.sum(a)  #求每一列的和
ind=np.array([1,2,3]); width=0.2
rc('font',size=16); bar(ind,c,width); ylabel("消费数据")
xticks(ind,['用户A','用户B','用户C'],rotation=20)  #旋转20度
rcParams['font.sans-serif']=['SimHei']   #用来正常显示中文标签
savefig('figure2_36.png',dpi=500)   #保存图片为文件figure2_36.png,像素为500
show()

六、x y 数据大小一致

import numpy as np
from matplotlib.pyplot import *
x=np.array(range(8))
y='27.0  26.8	  26.5	26.3	 26.1  25.7	 25.3	24.8'  #数据是粘贴过来的
y=",".join(y.split())    #把空格替换成逗号
y=np.array(eval(y))      #数据之间加逗号太麻烦,我们用程序转换
scatter(x,y)
savefig('figure2_23.png',dpi=500); show()

七、画图 三维例题 映射

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-6,6,30)
y=np.linspace(-6,6,30)
X,Y=np.meshgrid(x, y)
Z= np.sin(np.sqrt(X ** 2 + Y ** 2))
ax1=plt.subplot(1,2,1,projection='3d')
ax1.plot_surface(X, Y, Z,cmap='viridis')
ax1.set_xlabel('x'); ax1.set_ylabel('y'); ax1.set_zlabel('z')
ax2=plt.subplot(1,2,2,projection='3d'); 
ax2.plot_wireframe(X, Y, Z,color='c')
ax2.set_xlabel('x'); ax2.set_ylabel('y'); ax2.set_zlabel('z')
plt.savefig('figure2_41.png',dpi=500); plt.show()

八、改变tensorflow环境

打开cmd

conda activate tensorflow1

切换环境(如base)

conda deactivate
conda activate base



Microsoft Windows [版本 10.0.19044.1645]
(c) Microsoft Corporation。保留所有权利。

C:\Users\gym>conda activate tensorflow1

(tensorflow1) C:\Users\gym>

九、三维 等高线

from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
import numpy as np
z=np.loadtxt("Pdata2_42.txt")  #加载高程数据
x=np.arange(0,1500,100)
y=np.arange(1200,-10,-100)
ax1=plt.subplot(1,2,1)
contr=plt.contour(x,y,z); plt.clabel(contr)  #画等高线并标注
plt.xlabel('$x$'); plt.ylabel('$y$',rotation=0)
ax2=plt.subplot(1,2,2,projection='3d')
plt.sca(ax2)
X,Y=np.meshgrid(x,y)
ax2.plot_surface(X, Y, z,cmap='viridis')
ax2.set_xlabel('x'); ax2.set_ylabel('y'); ax2.set_zlabel('z')
plt.savefig('figure2_42_2.png',dpi=500); plt.show()

我是文本信息(15 x 15)
1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150
1370 1390 1410 1430 1440 1140 1110 1050 950 820 690 540 380 300 210
1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350
1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500
1430 1450 1460 1500 1550 1600 1550 1600 1600 1600 1550 1500 1500 1550 1550
950 1190 1370 1500 1200 1100 1550 1600 1550 1380 1070 900 1050 1150 1200
910 1090 1270 1500 1200 1100 1350 1450 1200 1150 1010 880 1000 1050 1100
880 1060 1230 1390 1500 1500 1400 900 1100 1060 950 870 900 936 950
830 980 1180 1320 1450 1420 400 1300 700 900 850 810 380 780 750
740 880 1080 1130 1250 1280 1230 1040 900 500 700 780 750 650 550
650 760 880 970 1020 1050 1020 830 800 700 300 500 550 480 350
510 620 730 800 850 870 850 780 720 650 500 200 300 350 320
370 470 550 600 670 690 670 620 580 450 400 300 100 150 250

总结

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值