导航:首页 > 编程语言 > pythonmatplotlib文档

pythonmatplotlib文档

发布时间:2023-05-22 17:22:09

python matplotlib用绘制雷达图实战案例

import pandasas pd

import matplotlib.pyplotas plt

import numpyas np

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

plt.rcParams['axes.unicode_minus'] =False

data = pd.read_csv(r'D:\bigData\radarMap.csv')

data = data.dropna(axis=1)

data = data.set_index('性能评价指标')

data = data.T

data.index.name ='品牌'

def plot_radar(data, feature):

columns = ['动力性', '燃油经济性', '制动性', '操控稳定性', '行驶平顺性', '通过性', '安全性', '环保性', '方便性', '舒适性', '经济性', '容量性']

colors = ['r', 'g', 'y']

# 设置雷达图的角度,用于平分切开一明旅个平面

    # linspace(1,10,x) 创建1-10的等差数组,个数为 x,默认50个;endpoint参数指定是否包含终值,默认值为True,即包含终值。

    angles = np.linspace(0.1 * np.pi, 2.1 * np.pi, len(columns), endpoint=False)

# 使雷达图封闭起来

    angles = np.concatenate((angles, [angles[0]]))

# figsize:指定figure的宽和高,单位为英寸;

    figure = plt.figure(figsize=(6, 6))

# 设置为极坐标格式;subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)创建单个子图,下面两句效果相同

    ax = figure.add_subplot(111, polar=True)

for i, cin enumerate(feature):

stats = data.loc[c]

stats = np.concatenate((stats, [stats[0]]))

ax.plot(angles, stats, '-', linewidth=2, c=colors[i], label=str(c))

ax.fill(angles, stats, color=colors[i], alpha=0.75)

# bbox_to_anchor这个参数,可以把图例放在图外面

    # bbox_to_anchor:表示legend的位置,前一个表示左右,后一个表示上下。

    # 当使用这个参数时。loc将不再起正常的作用,ncol=3表示图例三列显示。

    ax.legend(loc=4, bbox_to_anchor=(1.15, -0.07))

# 设置极轴范围

    ax.set_ylim(0, 10)

# ax.set_yticklabels([2, 4, 6, 8, 10])

    # 添加每个特质的标签

    columns = np.concatenate((columns, [columns[0]]))

ax.set_thetagrids(angles *180 / np.pi, columns, fontsize=12)

# 添加标题

    plt.title('汽车性能州纤指标雷达图')

plt.show()

return figure

figure = plot_radar(data, ['A品牌', 'B品牌', 'C品牌激迹凳'])

㈡ 用Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

转自 跳转链接
一、用默认设置绘制折线图

import matplotlib.pyplot as plt

x_values=list(range(11))

#x轴的数字是0到10这11个整数

y_values=[x**2 for x in x_values]

#y轴的数字是x轴数字的平方

plt.plot(x_values,y_values,c='green')

#用plot函数绘制折线图,慎弯线条颜色设置为绿色

plt.title('Squares',fontsize=24)

#设置图表标题和标题字号

plt.tick_params(axis='both',which='major',labelsize=14)

#设置刻度的字号

plt.xlabel('Numbers',fontsize=14)

#设置x轴标签及其字号

plt.ylabel('Squares',fontsize=14)

#设置y轴标签及其字号

plt.show()

#显示图表

制作出图表

我们希望x轴的刻度是0,1,2,3,4……,y轴的刻度是0,10,20,30……,并且希望两个坐标轴的范围都能再大一点,所以我们需要手动设置。

二、手动设置坐标轴刻度间隔以及刻度范围

import matplotlib.pyplot as plt

from matplotlib.pyplot import MultipleLocator

#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔

x_values=list(range(11))

y_values=[x**2 for x in x_values]

plt.plot(x_values,y_values,c='green')

plt.title('Squares',fontsize=24)

plt.tick_params(axis='both',which='major',labelsize=14)

plt.xlabel('Numbers',fontsize=14)

plt.ylabel('Squares',fontsize=14)

x_major_locator=MultipleLocator(1)

#把x轴的刻度间隔设置为1,姿孝猛并存在变量里

y_major_locator=MultipleLocator(10)

#把y轴的刻度间隔设置为10,并存在变量里

ax=plt.gca()

#ax为两条坐标轴的实例

ax.xaxis.set_major_locator(x_major_locator)

#把x轴的主迹桥刻度设置为1的倍数

ax.yaxis.set_major_locator(y_major_locator)

#把y轴的主刻度设置为10的倍数

plt.xlim(-0.5,11)

#把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白

plt.ylim(-5,110)

#把y轴的刻度范围设置为-5到110,同理,-5不会标出来,但是能看到一点空白

plt.show()

绘制结果

㈢ python matplotlib 图像可视化

Python画图之总结待整理

https://morvanzhou.github.io/tutorials/data-manipulation/plt/
http://blog.sciencenet.cn/blog-1408284-850983.html
http://www.cnblogs.com/DHUtoBUAA/p/6619099.html
http://blog.csdn.net/wuguangbin1230/article/details/72858612
http://blog.sciencenet.cn/blog-251664-800766.html
http://blog.csdn.net/wuguangbin1230/article/details/72858612
http://www.jianshu.com/p/0a81b57bbb8c
https://pythonprogramming.net/

http://blog.csdn.net/haoji007/article/details/52063168

Python Data Visualizations

Seaborn 库: https://seaborn.pydata.org/

Python Seaborn 教程: http://elitedatascience.com/python-seaborn-tutorial

matplotlib: plotting with Python
matplotlib: plotting with Python-github

python-data-visualization-course
Interactive Web Plotting for Python
Interactive Web Plotting for Python-github

https://morvanzhou.github.io/tutorials/data-manipulation/plt/3-3-contours/
https://github.com/MorvanZhou/tutorials/tree/master/matplotlibTUT

https://github.com/jiandanjinxin/tf-dev-summit-tensorboard-tutorial
https://github.com/jiandanjinxin/tensorflow-mnist-tutorial

CSDN-markdown编辑器语法——字体、字号与颜色

%matplotlib inline
%matplotlib notebook

Need to use either

or

Only one in each notebook! using inline will just sent png images to browser, using notebook will provide interactivity and allow updating old figures. With notebook you need to make sure to create a new figure before plotting, otherwise the last one will be updated!

还有简便的 plt.close('all') 关闭所有图,不用管 fig 号码

Some plots from these tutorials:

调整名字和间隔

设置不同名字和位置

调整坐标轴

参数loc='upper right'
表示图例将添加在图中的右上角.

调整位置和名称

最后我们得到带有图例信息的图片.

移动坐标

然后我们挪动坐标轴的位置.

然后标注出点(x0, y0)的位置信息. 用plt.plot([x0, x0,], [0, y0,], 'k--', linewidth=2.5)
画出一条垂直于x轴的虚线.

添加注释 annotate
接下来我们就对(x0, y0)这个点进行标注.

其中参数xycoords='data'
是说基于数据的值来选位置,xytext=(+30, -30)
和textcoords='offset points'
对于标注位置的描述 和 xy 偏差值,arrowprops
是对图中箭头类型的一些设置.

添加注释 text

其中-3.7, 3,
是选取text的位置, 空格需要用到转字符
,fontdict
设置文本字体.

生成图形
当图片中的内容较多,相互遮盖时,我们可以通过设置相关内容的透明度来使图片更易于观察,也即是通过本节中的bbox
参数设置来调节图像信息.
首先参考之前的例子, 我们先绘制图像基本信息:

调整坐标

然后对被遮挡的图像调节相关透明度,本例中设置 x轴 和 y轴 的刻度数字进行透明度设置

其中label.set_fontsize(12)重新调节字体大小,bbox设置目的内容的透明度相关参,facecolor调节 box 前景色,edgecolor 设置边框, 本处设置边框为无,alpha设置透明度. 最终结果如下:

散点图
首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据。生成1024个呈标准正态分布的二维数据组 (平均数是0,方差为1) 作为一个数据集,并图像化这个数据集。每一个点的颜色值用T来表示:

数据集生成完毕,现在来用scatterplot这个点集,鼠标点上去,可以看到这个函数的各个parameter的描述,如下图:
输入X和Y作为location,size=75,颜色为T,color map用默认值,透明度alpha 为 50%。 x轴显示范围定位(-1.5,1.5),并用xtick()函数来隐藏x坐标轴,y轴同理:

今天的柱状图分成上下两部分,每一个柱体上都有相应的数值标注,并且取消坐标轴的显示。
生成基本图形
向上向下分别生成12个数据,X为 0 到 11 的整数 ,Y是相应的均匀分布的随机数据。使用的函数是plt.bar
,参数为X和Y:

这样我们就生成了下图所示的柱状图基本框架:

现在的结果呈现:

接下来我们用函数plt.text分别在柱体上方(下方)加上数值,用%.2f保留两位小数,横向居中对齐ha='center',纵向底部(顶部)对齐va='bottom':

最终的结果就像开始一样:

画等高线
数据集即三维点 (x,y) 和对应的高度值,共有256个点。高度值使用一个 height function f(x,y) 生成。 x, y 分别是在区间 [-3,3] 中均匀分布的256个值,并用meshgrid在二维平面中将每一个x和每一个y分别对应起来,编织成栅格:

接下来进行颜色填充。使用函数plt.contourf把颜色加进去,fill, 位置参数分别为:X, Y, f(X,Y)。透明度0.75,并将 f(X,Y) 的值对应到color map的暖色组中寻找对应颜色。8代表等高线的个数。

接下来进行等高线绘制。使用plt.contour函数划线。位置参数为:X, Y, f(X,Y)。颜色选黑色,线条宽度选0.5。现在的结果如下图所示,只有颜色和线条,还没有数值Label:

添加高度数字
其中,8代表等高线的密集程度,这里被分为10个部分。如果是0,则图像被一分为二。
最后加入Label,inline控制是否将Label画在线里面,字体大小为10。并将坐标轴隐藏:

随机矩阵画图

这一节我们讲解怎样在matplotlib中打印出图像。这里我们打印出的是纯粹的数字,而非自然图像。 我们今天用这样 3x3 的 2D-array 来表示点的颜色,每一个点就是一个pixel。

colorbar
下面我们添加一个colorbar ,其中我们添加一个shrink参数,使colorbar的长度变短为原来的92%:

3D
首先在进行 3D Plot 时除了导入 matplotlib ,还要额外添加一个模块,即 Axes 3D 3D 坐标轴显示:

之后要先定义一个图像窗口,在窗口上添加3D坐标轴,显示成下图:

接下来给进 X 和 Y 值,并将 X 和 Y 编织成栅格。每一个(X, Y)点对应的高度值我们用下面这个函数来计算。

其中,rstride 和 cstride 分别代表 row 和 column 的跨度。
下面两个图分别是跨度为1 和 5 的效果:

投影

下面添加 XY 平面的等高线:

如果 zdir 选择了x,那么效果将会是对于 XZ 平面的投影,效果如下

㈣ python matplotlib怎么用

使用python的包matplotlib来画图
浏览:255
|
更新:
2015-10-24 22:10
1
2
3
4
5
6
7
分步阅读
python中的matplotlib可以很快的帮助我们作出图,
为此我们给出matplotlib的安装步骤和一个小例子来展示其功能
工具/原料
python3.4
numpy包
matplotlib包
依赖包:pyparsing、dateutil、scipy
方法/步骤
python安装(之前写过一篇关于python的安装,这里不重复介绍)
(1) 如何下载?网络---> Python官网
(2) 版本:python-3.4.3.amd64 exe文件直接点哦
(3) 目录:D:\Python34
为python配置了环境变量:D:\Python34\Scripts;D:\Python34
(4) 命令行输入:python 有反应表示成功
说明:matplotlib还没有匹配python3.5的版本,我的电脑为64位
0Python安装学习指南
软件包下载:
因为涉及到众多包的下载,以及其中的版本和电脑位数问题特介绍如下( 注意加粗的字体):
(1) numpy numpy-1.10.1+mkl-cp34-none-win_amd64.whl
(2) matplotlib matplotlib-1.4.3.win-amd64-py3.4b/matplotlib-1.4.3/windows/
(3) 依赖包:pyparsing、dateutil、scipy

声明:以上软件地址可自行网络搜索
附注:图一为matplotlib 、图二为numpy 下载界面的选择

软件包numpy的安装:
1 命令行输入【完整的路径=numpy 在你电脑的绝对路径】
pip install 完整的路径\numpy -1.10.1+mkl-cp34-none-win_amd64.
2 验证:python编辑下 python>>
from numpy import *

安装matplotlib:
matplotlib-1.4.3.win-amd64-py3.4
因为下载的是exe文件,点击一路执行即可

依赖包的安装:
在命令行里逐行输入如下命令:软件包的绝对路径
1 pip install 绝对路径\pyparsing-2.0.3-py3-none-any.whl
2 pip install 绝对路径\python_dateutil-2.4.2-py2.py3-none-any.whl
3 pip install 绝对路径\matplotlib依赖\scipy-0.16.0-cp34-none-win_amd64.whl

验证是否安装成功:
1 在python编辑状态下导入安装的包:
import matplotlib
import numpy
import scipy
import pyparsing
import matplotlib.pyplot as plt
2 如果缺少six
在安装完毕scipy之后把../Python34/Lib/site-packages/scipy/lib中的six.py six.pyc six.pyo三个文件拷贝到.../Python34/Lib/site-packages
案例1:
import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4, 5]
y = [0.1, 0.2, 0.2, 0.3, 0.2, 0.1]
y2 = [0.2, 0.2, 0.3, 0.2, 0.3, 0]
plt.plot(x, y, 'b', x, y2, 'g')
plt.show()

案例2:
import matplotlib.pyplot as plt
import math
x=[]
y=[]
num=0.0
while num < math.pi * 4:
y.append(math.sin(num))
x.append(num)
num += 0.1
plt.plot(x, y, 'b')
plt.show()

如果

㈤ python matplotlib可以画表格吗

matplotlib 是python最着名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。
而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览、复制、粘贴一下,基本上都能搞定。

㈥ Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染)

接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....

当然, 这个结果并不是我真正想要的,Pass, 太丑了!

好吧,安排,我们先看下实现后的效果!

这个效果自然就比之前的好多了!

实现python散点图绘制需要用到matplotlib库, matplotlib库是专门用于可视化绘图的工具库;学习一个新的库当然看官方文档了: https://www.osgeo.cn/matplotlib/contents.html

实现思路:

matplotlib.pyplot.scatter() 函数是专门绘制散点图的函数: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter

matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **

plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))
其中:
1、c参数为计算的散点密度;
2、cmap为色带(matplotlib里面自带了很多色带可供选择),参见:
https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html
3、由于计算的散点密度数值大小分散,因此利用norm参数对散点密度Z1进行归一化处理(归一化方式很多,参见colors类),并给归一化方式设置色带刻度的最大最小值vmin和vmax(一般这两个参数就是指定散点密度的最小值和最大值),这样就建立起了密度与色带的映射关系。
https://matplotlib.org/tutorials/colors/colormapnorms.html

(这里的结果与前面展示的相比改变了计算散点密度的半径:radius = 3以及绘制散点图的散点大小marksize)

作者能力水平有限,欢迎各位批评指正!

㈦ Python数据可视化利器Matplotlib从入门到高级4

2D曲线绘制是Matplotlib绘图的最基本功能,也是用得最多、最重要的绘图功能之一,本文开始详细介绍Matplotlib 2D曲线绘图功能。我的介绍主要以面向对象的编码风格为主,但会在文章的末尾附上相应的pyplot风格的源代码,供大家查阅、对比。我们先看一段代码:

代码运行效果如下:

这个绘图中我们没有作任何设置,一切交给Matplotlib处理。我们只是看到了绘制出的曲线的样子。但这与我们所想要的效果可能差异较大。所以我们还需要对图形进行一些自定义。

不管我们想生成什么样的图形,在Matplotlib当中,大致都可以总结为三步:一是构造绘图用的数据(Matplotlib推荐numpy数据,本系列介绍Matplotlib绘图,暂不涉及numpy的相关内容,留待后续有空余时吧);二是根据数据的特点选择适当的绘图方法并绘制出数据的图形;第三步则是对绘制的图形进行自定义设置或者美化以达到满足我们获得精美的输出图形的要求。

在上面的绘图中,我们仅仅做到了第二步,下面我们来进行一些自定义,而Matplotlib为此提供了非常丰富的功能。

你可能最想先尝试一下换个颜色看看曲线是什么样的,这有很多种方法。首先,我们可以在绘制图形的时候直接指定它,我们把绘图的代码改成下面的样子:

这里的 ‘r’ 是 “red”的简写,表示将曲线的颜色指定为红色。也可以写成下面的样子,这样可读性更高:

plot 返回一个 Line2D 对象的列表,我们使用一个带有“ line1, ”的元组来解包,随后使用 set_color() 代码设置line1 曲线的颜色,请注意这里设置的颜色会覆盖 plot 绘图函数当中指定的颜色。上面三段代码各自独立运行之后的效果是一样的。如下:

为了提高效率,Matplotlib模仿MATLAB支持常用颜色的单字母代码缩写。

你还可以使用不区分大小写的十六进制 RGB 或 RGBA 字符串(如:'#0f0f0f'),或者不区分大小写的 X11/CSS4 颜色名称(如:'aquamarine'),以及来自 xkcd color survey 的不区分大小写的颜色名称(如:'xkcd:sky blue')等等。更为详细的颜色规范,你可以查阅官方文档。但对于Python办公而言,掌握这些应该已经足够了。

与曲线颜色一样,线型和线宽也有多种方式来指定:

这里我们最终指定的线宽为2.0磅,绘图函数当中指定的线宽被后续指定的属性值覆盖了。而线型在这里由set_linestyle()指定,其中“--”和“-.”都是Matplotlib中支持的线型,“--”表示虚线,而“-.”则是点划线。而Matplotlib默认的线型“-”实线,除此之外,Matplotlib还支持“:”点线。

我们绘制曲线之前构造的数据点在曲线上也可以标记出来,这些标记点有不同的风格。同样可以以不同的方式来设置它:

注意第一行代码当中的“r:o”字符串,它是一种简写形式,是将颜色、线型和标记点形状在一个字符串中同时设置的方式,其中的“r”表示红色,“:”表示点线,“o”表示标记点为大圆点。只有在颜色使用单字符代码时才可以像上面这样组合起来同时表示三个属性。默认情况下,标记点的颜色与线型颜色相同,但可以单独设置与曲线不同的颜色,不仅如此,标记点的边线颜色和中间填充颜色也都可以单独设置。上面第二行代码我们就使用set_markeredgecolor('b')将标记点边线颜色设置为了蓝色。与标记点设置相关的还有set_marker(设置标记点形状)、set_markeredgewidth(设置标记点边线宽度)、set_markerfacecolor(设置标记点中间的填充色)、set_markersize (设置标记点的大小)等。下面是我整理的Matplotlib支持的所有标记点形状。

本文先介绍到此,后续进一步介绍坐标轴、图例和网格线的设置。最后附上本文pyplot风格的绘图代码:

显然这种简单绘图pyplot风格要简洁一些,还是很有优势的。

阅读全文

与pythonmatplotlib文档相关的资料

热点内容
html5即时通讯源码 浏览:142
python编程基础豆瓣 浏览:710
程序员乱码是什么意思 浏览:372
交友app怎么删除动态 浏览:92
男士穿衣哪个app好 浏览:38
如何把桌面软件改造成app 浏览:742
我的世界如何打开最近玩的服务器 浏览:386
程序员试用期汇报问题协助怎么写 浏览:129
抖音算法到底是什么 浏览:130
哪个vlan技术对报文加密 浏览:574
单片机定时电路 浏览:676
山西平台服务器云主机 浏览:704
按摩肚脐解压视频 浏览:993
php55安装教程 浏览:141
云服务器怎么查找本机域名 浏览:26
qd123y压缩机参数 浏览:389
程序员妈妈怀孕 浏览:492
金普国际编程 浏览:541
java什么是引用类型 浏览:948
这是命令吗txt 浏览:318