python画图程序没有图_Python绘图与可视化-Go语言中文社区

使用的库

Python有很多可视化工具,如:Matplotlib。

Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本、IPython的交互环境下、Web应用程序中使用。如果结合使用一种GUI工具包(如IPython),Matplotlib还具有诸如缩放和平移等交互功能。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量(vector)和光栅(raster)图:PDF、SVG、JPG、PNG、BMP、GIF等。

Matplotlib程序包

由于靠这个画图的话一般都会遇到比较复杂的数据处理,所以numpy也经常和matplotlib一起出现一起使用。

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(-1,1,50) #产生[-1,1]间均匀间隔的数据50个

y = 2*x + 1

plt.figure()

plt.plot(x,y)

plt.show()

注:1.np.linspace()含义

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

start:返回样本数据开始点

stop:返回样本数据结束点

num:生成的样本数据量,默认为50

endpoint:True则包含stop;False则不包含stop

retstep:If True, return (samples, step), where step is the spacing between samples.(即如果为True则结果会给出数据间隔)

dtype:输出数组类型

axis:0(默认)或-1

2.plt.figure()

声明的其实是一个figure窗口,这个窗口中可以包含很多个图。

3.plt.plot()

plot(x,y,linestyle=‘dashed’,linewidth=0.5,color=’#3479f7’) ,里面的参数可以自己设定

图形展示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzg2MDY2,size_16,color_FFFFFF,t_70

绘图命令的扩展及其属性设置

x = np.linspace(-10,10,50)

y1 = 2*x + 1

y2 = x**x

plt.figure()

plt.plot(x,y1)

plt.plot(x,y2,linestyle='dashed',linewidth=0.5,color='red',marker='.',)

plt.xlim(1,3)

plt.xlabel('value of X')

plt.xticks(np.linspace(1,3,11))

plt.show()

注:

1.使用plt.xlim/ylim两个方法可以分别设置x轴和y轴的范围。用法就是xlim(min,max)。

2.使用plt.xlabel和ylabel可以设置x/y轴的说明文字。

3.使用plt.xticks/yticks两个方法可以分别设置X和Y轴的坐标点的值是多少。除了简单的数值设置外,xticks/yticks还支持label设置。比如xticks([1,2,3,4],[‘bad’,‘ok’,‘good’,‘verygood’])这样的方式,来将数值坐标值和文字描述的坐标值一一对应起来。

补充:

1.plt.gca()

这个方法返回一个包含所有坐标轴的对象。gca的全称估计是get current axes,也就是获取到当前所有坐标轴。

其中比较重要的一条属性是spines**,这个属性是一个字典,可以有left,right,top,bottom的取值分别对应一个图的四条边。

ax = plt.gca()

ax.spines['top'].set_color('none')

ax.spines['right'].set_color('none')

ax.spines['left'].set_position(('data',0))

ax.spines['bottom'].set_position(('data',0))

2.plt.legend()

图例出现的位置默认是在左下方,可以在legend方法中用loc参数指明具体的位置。比如**plt.legend(loc=‘upper right’)**是出现在右上角。类似的参数值还有lower right,center left等等。此外还有一个best,这个值是说把位置自动交给电脑去判断,尽量选择一个不挡住任何东西的好的位置。

3.plt.scatter()

用来做散点图,

import matplotlib.pyplot as plt # 换个名字

import numpy as np

n = 1024 # data size

X = np.random.normal(0, 1, n) # 每一个点的X值

Y = np.random.normal(0, 1, n) # 每一个点的Y值

T = np.arctan2(Y,X) # for color value

plt.figure()

ax = plt.gca()

ax.spines['bottom'].set_position(('data',0))

ax.spines['left'].set_position(('data',0))

ax.spines['top'].set_color('none')

ax.spines['right'].set_color('none')

plt.scatter(X,Y,c=T,s=20) #c代表设置颜色

plt.xlim(-0.5,0.5)

plt.show()

画多个子图

使用subplot()方法

plt.subplot(2,2,1)

含多个坐标轴

利用subplots()与twins()方法

import matplotlib.pyplot as plt

import numpy as np

import math

x = np.arange(-2,2,0.1) # np.arange()函数返回一个有终点和起点的固定步长的排列

y1 = list(map(math.exp,x)) #注意遇到map要和list一起使用

y2 = -1*np.array(y1)

fig, left_ax = plt.subplots() # 获取当前的坐标,是第二个返回对象

right_ax = left_ax.twinx() # twinx生成另一个坐标对象,复制对象

left_ax.plot(x,y1,color='blue')

left_ax.set_ylabel('value of Y1',color='blue')

right_ax.plot(x,y2,color='green')

right_ax.set_ylabel('value of Y2',color='green')

plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzg2MDY2,size_16,color_FFFFFF,t_70

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值