python画柱状图-Python:Matplotlib 画曲线和柱状图(Code)
编辑推荐:
本文讲了对数坐标图,极坐标图像,柱状图,散列图,由离散的点构成的,3D图像,主要是调用3D图像库,希望对大家有帮助。
本文来自于csdn,由火龙果软件Delores编辑,推荐。
首先补充一下:两种体系7种颜色 r g b y m c k (红,绿,蓝,黄,品红,青,黑)
在科研的过程中,坐标系中的XY不一定就是等尺度的。例如在声波中对Y轴取对数。肆意我们也必须知道这种坐标系如何画出来的。
1:对数坐标图
有3个函数可以实现这种功能,分别是:semilogx(),semilogy(),loglog()。它们分别表示对X轴,Y轴,XY轴取对数。下面在一个2*2的figure里面来比较这四个子图(还有plot())。
def drawsemilogx():
w=np.linspace(0.1,1000,1000)
p=np.abs(1/(1+0.1j*w))
plt.subplot(221)
plt.plot(w,p,lw=2)
plt.xlabel('X')
plt.ylabel('y');
plt.subplot(222)
plt.semilogx(w,p,lw=2)
plt.ylim(0,1.5)
plt.xlabel('log(X)')
plt.ylabel('y')
plt.subplot(223)
plt.semilogy(w,p,lw=2)
plt.ylim(0,1.5)
plt.xlabel('x')
plt.xlabel('log(y)')
plt.subplot(224)
plt.loglog(w,p,lw=2)
plt.ylim(0,1.5)
plt.xlabel('log(x)')
plt.xlabel('log(y)')
plt.show()
如上面的代码所示,对一个低通滤波器函数绘图。得到四个不同坐标尺度的图像。如下图所示
2,极坐标图像
极坐标系中的点由一个夹角和一段相对于中心位置的距离来表示。其实在plot()函数里面本来就有一个polar的属性,让他为True就行了。下面绘制一个极坐标图像:
def drawEightFlower():
theta=np.arange(0,2*np.pi,0.02)
plt.subplot(121,polar=True)
plt.plot(theta,2*np.ones_like(theta),lw=2)
plt.plot(theta,theta/6,'--',lw=2)
plt.subplot(122,polar=True)
plt.plot(theta,np.cos(5*theta),'--',lw=2)
plt.plot(theta,2*np.cos(4*theta),lw=2)
plt.rgrids(np.arange(0.5,2,0.5),angle=45)
plt.thetagrids([0,45,90]);
plt.show();
整个代码很好理解,在后面的13,14行没见过。第一个plt.rgrids(np.arange(0.5,2,0.5),angle=45) 表示绘制半径为0.5 1.0 1.5的三个同心圆,同时将这些半径的值标记在45度位置的那个直径上面。plt.thetagrids([0,45,90]) 表示的是在theta为0,45,90度的位置上标记上度数。得到的图像是:
3,柱状图:
核心代码matplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, **kwargs)里面重要的参数是左边起点,高度,宽度。下面例子:
def drawPillar():
n_groups = 5;
means_men = (20, 35, 30, 35, 27)
means_women = (25, 32, 34, 20, 25)
fig, ax = plt.subplots()
index = np.arange(n_groups)
bar_width = 0.35
opacity = 0.4
rects1 = plt.bar(index, means_men,
bar_width,alpha=opacity,
color='b',label= 'Men')
rects2 = plt.bar(index + bar_width,
means_women,
bar_width,alpha=opacity,
color='r',
label='Women')
plt.xlabel('Group')
plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(index + bar_width,
('A', 'B', 'C',
'D', 'E'))
plt.ylim(0,40);
plt.legend();
plt.tight_layout();
plt.show();
得到的图像是:
再贴一图:
这是我关于pose识别率的实验结果,感觉结果真是令人不可思议
def drawBarChartPoseRatio():
n_groups = 5
means_VotexF36 = (0.84472049689441,
0.972477064220183,
1.0, 0.9655172413793104,
0.970970970970971)
means_VotexF50 = (1.0, 0.992992992992993,
1.0,
0.9992348890589136, 0.9717125382262997)
means_VFH36 = (0.70853858784893,
0.569731081926204,
0.8902900378310215,
0.8638638638638638, 0.5803008248423096)
means_VFH50 = (0.90786948176583,
0.796122576610381,
0.8475120385232745,
0.8873762376237624, 0.5803008248423096)
fig, ax = plt.subplots()
index = np.arange(n_groups)
bar_width = 0.3
opacity = 0.4
rects1 = plt.bar(index, means_VFH36,
bar_width/2,
alpha=opacity, color='r',
label='VFH36' )
rects2 = plt.bar(index+ bar_width/2,
means_VFH50,
bar_width/2, alpha=opacity,
color='g', label='VFH50'
)
rects3 = plt.bar(index+bar_width,
means_VotexF36,
bar_width/2,
alpha=opacity, color='c', label='VotexF36')
rects4 = plt.bar(index+1.5*bar_width,
means_VotexF50,
bar_width/2, alpha=opacity,
color='m', label='VotexF50')
plt.xlabel('Category')
plt.ylabel('Scores')
plt.title('Scores by group and Category')
#plt.xticks(index - 0.2+ 2*bar_width,
('balde',
'bunny', 'dragon', 'happy', 'pillow'))
plt.xticks(index - 0.2+ 2*bar_width,
('balde',
'bunny', 'dragon', 'happy', 'pillow'),
fontsize
=18)
plt.yticks(fontsize =18) #change the num axis
size
plt.ylim(0,1.5) #The ceil
plt.legend()
plt.tight_layout()
plt.show()
柱状图显示:
4:散列图,由离散的点构成的。
函数是:
matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, hold=None,**kwargs),其中,xy是点的坐标,s点的大小,maker是形状可以maker=(5,1)5表示形状是5边型,1表示是星型(0表示多边形,2放射型,3圆形);alpha表示透明度;facecolor="none’表示不填充。例子如下:
def drawStar():
plt.figure(figsize=(8,4))
x=np.random.random(100)
y=np.random.random(100)
plt.scatter(x,y,s=x*1000,c='y',marker=(5,1),
alpha=0.5,lw=2,facecolors='none')
plt.xlim(0,1)
plt.ylim(0,1)
plt.show()
上面代码的facecolors参数使得前面的c="y’不起作用了。图像:
5,3D图像,主要是调用3D图像库。看下面的例子:
def draw3Dgrid():
x,y=np.mgrid[-2:2:20j,-2:2:20j]
z=x*np.exp(-x**2-y**2)
ax=plt.subplot(111,projection='3d')
ax.plot_surface(x,y,z,rstride=2,cstride=1,
cmap=plt.cm.coolwarm,alpha=0.8)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
得到的图像如下图所示:
到此,matplotlib基本操作的学习结束了,相信大家也可以基本完成自己的科研任务了。
python画柱状图-Python:Matplotlib 画曲线和柱状图(Code)相关推荐
- 用Python的turtle和matplotlib画出圆满和爱心
马上就要到六一儿童节了,小朋友很喜欢画画,这里就用Pyhton来画一些简单形状. 首先是圆形,圆形的寓意是圆满.完美.团圆.优胜和团结.圆形在形状上是一个平面中点到定点距离相等的图形,象征着圆满和完美 ...
- 【Python】怎么用matplotlib画出漂亮的分析图表
特征锦囊:怎么用matplotlib画出漂亮的分析图表 ???? Index 数据集引入 折线图 饼图 散点图 面积图 直方图 条形图 关于用matplotlib画图,先前的锦囊里有提及到,不过那些图 ...
- 用python画出简单笑脸画法_【Python】怎么用matplotlib画出漂亮的分析图表
特征锦囊:怎么用matplotlib画出漂亮的分析图表 ? Index 数据集引入 折线图 饼图 散点图 面积图 直方图 条形图 关于用matplotlib画图,先前的锦囊里有提及到,不过那些图都是比 ...
- python的contour怎么画虚线_Python+Matplotlib画contour图
在本文中,你将学习到以下内容: 理解画contour图的数据结构 contour图的参数调节 如何添加colorbar 我们先假设x, y的取值范围如下: import matplotlib.pypl ...
- python坐标网matplotlib_使用matplotlib画双纵轴坐标
一.前言 本文主要使用matplotlib,实现双纵轴坐标的图表绘制.笔者python版本为2.7.15. 二.实践及效果 1. 需求 某个有这么一个成绩表,分别是名字,本次成绩以及进步幅度,现在需要 ...
- 【python 初学者】使用matplotlib画对比旋风图
在做一些数据可视化时,两个类别数据可以做成对比图,这里使用的小技巧是生成一个固定数据用来放置标签,再将其中一个数据转换成负值,可使图形分成两部分. import matplotlib.pyplot a ...
- python circle函数如何画圆_Python Matplotlib画圆
同时需要了解Numpy和Matplotlib相关知识. 看代码吧,仔细了解清楚每句代码,每个函数. # -*- coding:utf-8 -*- #! python3 import numpy as ...
- python用matplotlib画球_用Python的Matplotlib 画一个足球场
我们可能想要在图表上绘制线条或圆圈的原因有很多. 我们可以寻找添加平均线,突出显示关键数据点甚至绘制图片. 本文将展示如何使用足球场地图的示例添加线条,圆圈和圆弧,然后可以使用它来显示热图,传球或比赛 ...
- python 画柱状图-Python 使用 matplotlib 画柱状图教程
Python 使用 matplotlib 画图是非常方便的,之前的文章记录了<Python 使用 matplotlib 画折线图教程>,今天就再次记录一下使用 matplotlib 画柱状 ...
- python画柱状图-Python 使用 matplotlib 画柱状图教程
Python 使用 matplotlib 画图是非常方便的,之前的文章记录了<Python 使用 matplotlib 画折线图教程>,今天就再次记录一下使用 matplotlib 画柱状 ...
最新文章
- python归一化代码_python中的快速图像归一化
- 剑指offer 刷题 01
- samll note
- java jar 配置_java jar包与配置文件的写法
- Java基础-锁机制
- [置顶]IA32 architecture 学习笔记 (一)
- Android IOS WebRTC 音视频开发总结(四二)-- webrtc开发者大会
- Eclipse Java类编辑器里出现乱码的解决方案
- 7-2 旅行售货员 (10 分)(TSP问题思路加详解)
- 如何使用git命令行上传项目到github
- WiresharkTCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
- Windows 编程[10] - WM_LBUTTONDOWN、WM_LBUTTONUP 和 WM_MOUSEMOVE 消息
- 和java转换_java基础之 类型转换
- java毕业设计老鹳窝旅游网源码+lw文档+mybatis+系统+mysql数据库+调试
- 2022年搜索引擎研究报告
- html中图片椭圆,CSS3技巧之形状(椭圆)
- 三、cadence ic 5141 ——打开cadence软件
- RadioGroup 全部取消选中 和选中某个按钮
- iphone输入法换行_iphone打字怎么换行?iphone输入法换行教程
- vivado中ZYNQ详解(主要用于PS和PL之间的工作衔接)