200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【python 数据挖掘】基于matplotlib的绘图一:四种基本图形及其参数

【python 数据挖掘】基于matplotlib的绘图一:四种基本图形及其参数

时间:2024-03-18 04:51:36

相关推荐

【python 数据挖掘】基于matplotlib的绘图一:四种基本图形及其参数

python绘图1

1、折线图2、散点图3、条形图4、饼状图

图形化最大的优点就是直观,图像比表格能够传递更多信息,但是一张优秀的统计图,首先要保证正确性,这里的正确是指用合理的统计图来表达原始数据的特征或者联系。比如:展示不同城市的手机的销售量,就不适合用折线图,因为销售量和城市之间不能体现趋势,用条形图就更合适。所以用对是前提

1、折线图

把图画出来:

import matplotlib.pyplot as pltimport numpy as npx = np.arange(0,3*np.pi,0.1)y = np.sin(x) plt.plot(x,y) # 用列表也行,但是用列表想计算正弦就很难了plt.show() # 在spyder等图形界面的环境下不加plt.show()也能出图,但在命令行环境下就必须加这句话才会弹出图窗

掌握了以上用法,就会最基本的画图了,但就跟会print('hello, world!')一样。(/捂脸笑)

常用参数:改一改,看一看以下一些参数就基本够用了

import matplotlib.pyplot as pltimport numpy as npx = np.arange(0,3*np.pi,0.1)y1 = np.sin(x)y2 = np.cos(x)# 打开一个10*6英寸,编号'89757'的图窗plt.figure(num='89757',figsize=(10,6))# 设置线条形状和标记的形状、线宽和标记的大小、颜色plt.plot(x,y1,linestyle='-.',marker='o',linewidth=0.5,markersize=3,color='r')plt.plot(x,y2,linestyle='--',marker='^',linewidth=0.5,markersize=3,color='g')# 设置标题和横纵坐标的范围,lim是limit的缩写plt.title('plot')plt.xlim((0,3*np.pi))plt.ylim((-1,1))# 设置横纵标签文本以及距离坐标轴的距离,以及旋转角度,y轴默认90°plt.xlabel('x', labelpad=5)plt.ylabel('y', labelpad=5, rotation=0)# 设置网格和图例plt.grid(b=True,which='major',axis='y',linestyle=':',color='y')plt.legend(('y=sin(x)','y=cos(x)'))# 绘图plt.show() # 在spyder等图形界面的环境下不加plt.show()也能出图,但在命令行环境下就必须加这句话才会弹出图窗

2、散点图

常用参数:(艺术大师-shug)

import matplotlib.pyplot as pltimport numpy as np# 支持中文plt.rcParams['font.sans-serif']=['SimHei'] # 开图窗fig = plt.figure(num=1,figsize=(8,6),facecolor='w',frameon=True)ax = fig.add_subplot(111)# 夜空ax.patch.set_color('darkblue')# 星星N=20 plt.scatter(np.random.rand(N), np.random.rand(N),c='k',s=50,marker='*')plt.scatter(np.random.rand(N), np.random.rand(N),c='r',s=10,marker='*')plt.scatter(np.random.rand(N), np.random.rand(N),c='g',s=100,marker='*')plt.scatter(np.random.rand(N), np.random.rand(N),c='pink',s=70,marker='*')plt.scatter(np.random.rand(N), np.random.rand(N),c='y',s=120,marker='*')'''marker=['.',',','o','v','^','<','>','1','2','3','4','s','p','*','h','H','+','x','D','d','|','_','.',','] # marker标记的样式库,具体长啥样自己试一下就知道了'''# 设置标题和横纵坐标的范围plt.title('繁星')plt.xlim((0,1))plt.ylim((-1,1))# 关掉坐标标签和坐标刻度线plt.xlabel('')plt.ylabel('')plt.xticks(())plt.yticks(())# 绘图plt.show() # 在spyder等图形界面的环境下不加plt.show()也能出图,但在命令行环境下就必须加这句话才会弹出图窗

3、条形图

# 导入绘图模块import matplotlib.pyplot as pltimport numpy as np# 构建数据Y=[15600,12700,11300,4270,3620]Y=[17400,14800,12000,5200,4020]labels=['Beijing', 'Shanghai','HongKong','Shenzhen', 'Guangzhou']bar_width=0.5plt.figure(figsize=(10,6))#设置条形颜色、透明度、宽度plt.bar(np.arange(5),Y,label='',color='yellow',alpha=0.8,width=bar_width)plt.bar(np.arange(5)+bar_width,Y,label='',color='black',alpha=0.8,width=bar_width)#添加轴标签plt.xlabel('Top5City',fontproperties='Times New Roman',fontsize=16)plt.ylabel('Family Amount',fontproperties='Times New Roman',fontsize=16)plt.xticks(np.arange(5)+bar_width,labels)plt.ylim([2500,20000])plt.yticks(fontproperties='Times New Roman', size=14)plt.xticks(fontproperties='Times New Roman',size=14)#添加标题plt.title('Millions Family AmountTop5City Distribution ',fontproperties='Times New Roman', fontsize=16)#为每个条形图添加数值标签for x,y in enumerate(Y):plt.text(x-0.25,y+100,'%s'%y)for x,y in enumerate(Y):plt.text(x+0.2,y+100,'%s'%y)#显示图例plt. legend()plt. show()

4、饼状图

# 导入绘图模块import matplotlib.pyplot as pltimport numpy as npplt.figure(figsize=(10,6))# 构造数据,调整数据顺序,以免低占比的饼块相邻,无法分辨edu=[0.2515,0.0057,0.3724,0.3336,0.0368]labels=['HighSchool','Others','Junior College','Eachelor','Master']explode=[0,0,0.1,0,0]#用于分离突出显示大专学历人群colors=['#61666f','#000000','#6f6f6f','#9f9f9f','#cfcfef']# 黑白灰度显示颜色# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆plt.axes(aspect='equal')# 控制x轴和y轴的范围plt.xlim(0,4)plt.ylim(0,4)# 绘制饼图plt.pie(x=edu,#绘图数据explode=explode,#突出显示大专人群labels=labels,#添加教育水平标签colors=colors,#设置饼图的自定义填充色autopct='%.1f%%',#设置百分比的格式,这里保留一位小数pctdistance=0.5,#设置百分比标签与圆心的距离labeldistance=1.0,#设置教育水平标签与圆心的距离startangle=180,#设置饼图的初始角度radius=1.5,#设置饼图的半径counterclock=False,#是否逆时针,这里设置为顺时针方向wedgeprops={'linewidth':1.5,'edgecolor':'green'},#设置饼图边界的属性值textprops={'fontsize':20,'color':'k'},#设置文本标签的属性值center=(1.8,1.8),#设置饼图的原点frame=True) #是否显示饼图的图框,这里设置显示#删除x轴和y轴的刻度plt.xticks(())plt.yticks(())plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。