⽤python画图的好处_利⽤Python绘制技术功效图的⽅法Python可以画的图很多,⽐如⽓泡图、玫瑰图等等,很多我们⽤Excel实现起来很⿇烦的图表,⽤Python都可以轻松实现。
今天我们就来教⼤家⽤Python画技术功效⽓泡图。
编程⼩⽩不要觉得看不懂代码就被吓退了,其实就是把代码拷进去,⼀键式粘贴,代码基本不⽤改,但是要注意Excel⾥⾯的数据设置和命名。下⾯就⼀起来具体看看吧。
1.安装开发环境
⾸先需要下载Python的操作软件Anaconda。
打开下载链接后,可以看到提供三个操作系统的下载选项。
根据⾃⼰所⽤的电脑的操作系统,选择相应的版本下载:windows⽤户点击窗户图标,Mac⽤户点击苹果图标,Linux⽤户点击⼩企鹅。
下载好安装包后,按照提⽰进⾏安装。
2. 导⼊绘图所需的扩展包
⾸先,导⼊绘图需要的扩展包,并重新命名为较短的单词(#后为该句注释)。
import numpy as np #导⼊python的数值计算扩展包numpy,并重命名为np
import matplotlib.pyplot as plt #导⼊Python的绘图扩展包matplotlib,并重新命名为plt
import pandas as pd #导⼊python的数据处理扩展包pandas,并重命名为pd,该包⽤于读写excel⽂件
3. 设置excel中的数据
⽓泡图共有4个维度的独⽴变量,分别为x,y,s和c,其中x代表横坐标,y代表纵坐标,s代表⽓泡⾯积,c代表⽓泡颜⾊。
绘图所需的4维数据信息,全部从excel表格中读取。四个维度在实际中均可单独配置,它们是相互独⽴的。
表1为xys三个变量的数据信息,蓝⾊横轴为⽓泡图的x轴数据,绿⾊纵轴为⽓泡图的y轴数据,中间灰⽩相间的数据(s)为⽓泡的⼤⼩。将包含表1的数据表格存放在程序所在⽂件夹下,命名为“data.xlsx”。
表1
表2为xyc三个变量的数据信息,蓝⾊横轴为⽓泡图的x轴数据,绿⾊纵轴为⽓泡图的y轴数据,中间灰⽩相间的数据(c)为⽓泡的颜⾊。将包含表2的数据表格存放在程序所在⽂件夹下,命名为“colors.xlsx”。
表2
4. 读取Excel中的数据
从'data.xlsx'⽂件中读取⽓泡⾯积数据
ad_excel('data.xlsx') #从excel⽂件中读取数据,并保存到data1变量中
lumns#获取数据表的列,作为x轴数据
data2=data1.T#旋转⽅向,⾏变列,列变⾏
y_index=[]#声明⼀个空列表
for i lumns: #循环访问列元素的每个索引
y_index.append(i) #将列元素的索引加⼊列表
print(y_index) #打印列表查看数据
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
#从列表数据中⽣成y轴坐标矩阵
从'colors.xlsx'⽂件种读取颜⾊数据
ad_excel('colors.xlsx') #从colors
excel⽂件中读取数据,保存到colors1变量中
colors2=colors1.T#转置表格,⾏变列,列变⾏
4. 绘图
y轴共有10个系列,所以循环10次绘制。使⽤上⾯计算出来的x,y,area和colors的值进⾏绘制,同时可以额外制定⼀个透明度参数alpha,alpha=1时为不透明,alpha=0时为全透明。
for i inrange(len(y_index)):#循环绘图,循环次数为excel表格中的数据⾏数
plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1], alpha=0.5)
python怎么读入excel#绘制图像,因为s和c的索引从1开始,所以⽤i+1索引
plt.show()#显⽰绘制的图像
编程零基础的⼩伙伴有没有看晕掉?
其实,把上述代码写到⼀个⽂件⾥,得到下⾯的程序⽂件,不想动脑筋,直接拷贝下⾯的代码就可以了。
import numpy as np #导⼊python的数值计算扩展包numpy,并重命名为np
import matplotlib.pyplot as plt #导⼊Python的绘图扩展包matplotlib,并重新命名为plt
import pandas as pd #导⼊python的数据处理扩展包pandas,并重命名为pd,该包⽤于读写excel⽂件
ad_excel('data.xlsx')
data2=data1.T
lumns#获取数据表的列,作为x轴数据
y_index=[]
for i lumns:
y_index.append(i)
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
ad_excel('colors.xlsx')
colors2=colors1.T
for i inrange(len(y_index)):#循环绘图,循环次数为excel表格中的数据⾏数
plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1],
alpha=0.5)#绘制图像,因为s和c的索引从1开始,所以⽤i+1索引
plt.show()
福利⼤放送
如果还想给⽓泡图添加横纵坐标标签怎么办?如果还想加⽹格线背景怎么办?EMMA为⼤家贴⼼准备了格式代码。
终于可以摆脱丑丑的low办法——“插⼊⽂本框”,有没有很开⼼啊~~
1.加上⽹格线背景
想在⽓泡图上加⼊⽹格线背景,形成⼀种“串糖葫芦的效果”,在程序种只需要加⼊⼀句话:id(True)将这句话加在plt.show()语句之前即可。
import numpy as np #导⼊python的数值计算扩展包numpy,并重命名为np
import matplotlib.pyplot as plt #导⼊Python的绘图扩展包matplotlib,并重新命名为plt
import pandas as pd #导⼊python的数据处理扩展包pandas,并重命名为pd,该包⽤于读写excel⽂件ad_excel('data.xlsx')
data2=data1.T
lumns#获取数据表的列,作为x轴数据
y_index=[]
for i lumns:
y_index.append(i)
#print(y_index)
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
ad_excel('colors.xlsx')
colors2=colors1.T
for i inrange(len(y_index)):#循环绘图,循环次数为excel表格中的数据⾏数
plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1],
alpha=0.5)#绘制图像,因为s和c的索引从1开始,所以⽤i+1索引
plt.show()
2. 加⼊x,y轴刻度和图⽚标题
在原来的程序中,第22~24⾏加⼊三条语句实现信息说明,使⽤额外的'size'参数来指定⽂本的⼤⼩。import numpy as np #导⼊python的数值计算扩展包numpy,并重命名为np
import matplotlib.pyplot as plt #导⼊Python的绘图扩展包matplotlib,并重新命名为plt
import pandas as pd #导⼊python的数据处理扩展包pandas,并重命名为pd,该包⽤于读写excel⽂件ad_excel('data.xlsx')
data2=data1.T
lumns#获取数据表的列,作为x轴数据
y_index=[]
for i lumns:
y_index.append(i)
#print(y_index)
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
ad_excel('colors.xlsx')
colors2=colors1.T
for i inrange(len(y_index)):#循环绘图,循环次数为excel表格中的数据⾏数
plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1],
alpha=0.5)#绘制图像,因为s和c的索引从1开始,所以⽤i+1索引
plt.xlabel('Series',size=14)
plt.ylabel('Type',size=14)
plt.title('A Python Scatter Demo',size=14)
plt.show()#显⽰图⽚
3. 修改x,y轴标签显⽰
增加第24⾏~29⾏对xy轴标度进⾏修改,同时将原程序的21~23⾏改⽤中⽂显⽰。
import numpy as np #导⼊python的数值计算扩展包numpy,并重命名为np
import matplotlib.pyplot as plt #导⼊Python的绘图扩展包matplotlib,并重新命名为plt
import pandas as pd #导⼊python的数据处理扩展包pandas,并重命名为pd,该包⽤于读写excel⽂件ad_excel('data.xlsx')
data2=data1.T
lumns#获取数据表的列,作为x轴数据
y_index=[]
for i lumns:
y_index.append(i)
#print(y_index)
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
ad_excel('colors.xlsx')
colors2=colors1.T
for i inrange(len(y_index)):#循环绘图,循环次数为excel表格中的数据⾏数
plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1],
alpha=0.5)#绘制图像,因为s和c的索引从1开始,所以⽤i+1索引
plt.xlabel('技术⼿段',size=14)
plt.ylabel('技术效果',size=14)
plt.title('XXX领域技术功效分析',size=14)
'技术⼿段5', '技术⼿段6', '技术⼿段7'])
'技术效果4', '技术效果5','技术效果6','技术效果7','技术效果8','技术效果9','技术效果10'],size=14) plt.show()#显⽰图⽚
另外,⽤windows的⼩伙伴,显⽰中⽂如果有问题,请在程序中import那两句之后,加⼊
<('font', family='SimHei', size=13) #指定字体⽂件为微软⿊体
来解决中⽂显⽰乱码问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。