200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > matplotlib.pyplot 让数据可视化

matplotlib.pyplot 让数据可视化

时间:2024-01-29 01:56:15

相关推荐

matplotlib.pyplot 让数据可视化

1.条形图

import matplotlib.pyplot as pltplt.style.use('ggplot') # 使用ggplot样式来模拟ggplot2风格的图形,ggplot2是一个常用的R语言绘图包customers = ['ABC','DEF','GHI','JKL','MNO']customers_index = range(len(customers))sale_amounts = [127,90,201,111,232]fig = plt.figure() # 创建基础图ax1 = fig.add_subplot(1,1,1) # 向基础图中添加一个子图 1,1,1表示穿件1行1列的子图,并使用第一个也是唯一的一个子图ax1.bar(customers_index,sale_amounts,align='center',color='darkblue') # 创建条形图,customers_index设置天性左侧在x轴上的坐标,sale_amounts设置条形图的高度,align 设置条形图与标签中间对齐,color设置条形图的衍射plt.xlabel('用户姓名', fontproperties="SimHei") # 设置X轴的标题plt.ylabel('销售数量', fontproperties="SimHei") # 设置Y轴的标题plt.title('销售额/客户', fontproperties="SimHei") # 设置title的标题plt.savefig('bar_plot.png',dpi=400,bbox_inches='tight') # 讲统计图保存在当前文件夹中,文件名为bar_plot.png,dpi=400设置图形分辨率,【每英寸(1英寸=2.54厘米)的点数】,bbox_inches='tight' 表示在保存图形时,将图形四周的空白部分去掉plt.show() # 在一个新窗口中显示统计图,

2.直方图

# @author: erlangimport numpy as npimport matplotlib.pyplot as pltplt.style.use('ggplot')mu1,mu2,sigma = 100,130,15x1 = mu1 + sigma * np.random.randn(10000) # 生成两个正太分布变量x1和x2,x1的均值是100,x2的均值是130,x2 = mu2 + sigma * np.random.randn(10000)fig = plt.figure()ax1 = fig.add_subplot(1,1,1)n, bins, patches = ax1.hist(x1,bins=50,normed=False,color='darkgreen') #创建两个柱形图或称频率分布图,bins= 50表示每个变量的值应该被分成50份n, bins, patches = ax1.hist(x2,bins=50,normed=False,color='orange',alpha=0.2) # normed= False表示直方图显示是平率分布,而不是概率密度。alpha=0.2 表示第二个直方图应该是透明的ax1.xaxis.set_ticks_position('bottom')ax1.yaxis.set_ticks_position('left')plt.xlabel('Bins')plt.ylabel('Number中值数',fontproperties="SimHei")fig.suptitle('直方图',fontproperties="SimHei")ax1.set_title('两个频率分布',fontproperties="SimHei")plt.savefig('histogram.png',dpi=400,bbox_inches='tight') plt.show()

3.折线图

# @author: erlangfrom numpy.random import randnimport matplotlib.pyplot as pltimport matplotlib# 保证图中的中文可以正常显示matplotlib.rcParams['font.sans-serif'] = ['SimHei']matplotlib.rcParams['axes.unicode_minus'] = Falseplt.style.use('ggplot')plot_data1 = randn(50).cumsum()plot_data2 = randn(50).cumsum()plot_data3 = randn(50).cumsum()plot_data4 = randn(50).cumsum()fig = plt.figure()ax1 = fig.add_subplot(1,1,1)# 穿件4条折线,每条折线都可以通过选项进行设置。使用不同的数据点类型、颜色和现行,label参数盘整折线在图列中可以正确标记ax1.plot(plot_data1,marker='o',color=u'blue',linestyle='-',label='Blue solid(蓝色固体)',)ax1.plot(plot_data2,marker='+',color=u'red',linestyle='--',label='Red Dashed(红色虚线)',)ax1.plot(plot_data3,marker='*',color=u'green',linestyle='-.',label='Green Dash Dot(绿色冲点)',)ax1.plot(plot_data4,marker='s',color=u'orange',linestyle=':',label='Orange Dotted(橙色的虚线)',)ax1.xaxis.set_ticks_position('bottom')ax1.yaxis.set_ticks_position('left')ax1.set_title('Line Plots:Markers,colors,and Linestyles(情节:标记、颜色和线型)')plt.xlabel('Draw(画)') # x轴标题plt.ylabel('Random Number(随机数)')# Y轴标题plt.legend(loc='best') # 指示matplotlib根据图中空白部分将图列放在最合适的位置plt.savefig('line_plot.png',dpi=400,bbox_inches='tight')plt.show()

4散点图

# @author: erlangimport numpy as npimport matplotlib.pyplot as pltimport matplotlib# 保证图中的中文可以正常显示matplotlib.rcParams['font.sans-serif'] = ['SimHei']matplotlib.rcParams['axes.unicode_minus'] = Falseplt.style.use('ggplot') x = np.arange(start=1.,stop=15.,step=1.) y_linear = x + 5. * np.random.randn(14) y_quadratic = x** 2 + 10. * np.random.randn(14) # 通过随机数是数据与一条直线和一条二次曲线悄悄偏离 # 使用numpy的polyfit函数通过函数两组数据点(x,y_linear)和(x,y_quadratic)拟合出一条直线和一条二次曲线 # 再使用polyid函数根据直线和二次曲线的参数与生成一个线性方程和二次方程 fn_linear = np.poly1d(np.polyfit(x,y_linear,deg=1)) fn_quadratic = np.poly1d(np.polyfit(x,y_quadratic,deg=2)) # fig = plt.figure() ax1 = fig.add_subplot(1,1,1) # 代码创建带有两个回归曲线的散点图,'bo'表示(x,_y_linear)点事是蓝色圆圈,'go'表示(,x,y_quadratic)点是绿色圆圈, # 同样'b-'表示(x,y_linear)点之间的显示一条蓝色实线 'g-'表示(,x,y_quadratic)点是绿色实线, 通过linewidth可以设置线的高度 ax1.plot(x,y_linear,'bo',x,y_quadratic,'go',x,fn_linear(x),'b-',x,fn_quadratic(x),'g-',linewidth = 2.) ax1.xaxis.set_ticks_position('bottom') ax1.yaxis.set_ticks_position('left') ax1.set_title('Scatter ploys Regression Lines(散射伎俩回归直线)',) plt.xlabel('x') plt.ylabel('f(x)') # 设置了x轴和Y轴的范围。这两条曲线使用min和max函数基于实际数据设置坐标轴范围,你也可以使用具体的数值设置范围,列入xlim(0,20)和ylom(0,200) # 如果你没有设置坐标范围,那么matplotlib会替你自己设置, plt.xlim(min(x)-1,max(x)+1) plt.ylim(min(y_quadratic)-10.,max(y_quadratic)+10.) plt.savefig('scatter_plot.png',dpi=400,bbox_inches='tight') plt.show()

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