Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python Matplotlib 绘图 #69

Open
myyyy opened this issue Mar 16, 2018 · 0 comments
Open

Python Matplotlib 绘图 #69

myyyy opened this issue Mar 16, 2018 · 0 comments
Labels

Comments

@myyyy
Copy link
Owner

@myyyy myyyy commented Mar 16, 2018

最近因为项目需要,要用Python进行绘制图案,百度了好久,入了好多坑终于找到了方案。如下:
1 Matplotlib 模块

Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小 等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。

atplotlib的pyplot子库提供了和matlab类似的绘图API

import matplotlib.matlab

2 坐标轴刻度的控制

由于项目只需要根据x,y参赛绘制图形,并不需要x轴y轴显示提示,特意找了山车刻度的方法

set(gca,'xtick',[])%去掉x轴的刻度

set(gca,'ytick',[]) %去掉xy轴的刻度

set(gca,'xtick',[],'ytick',[]) %同时去掉x轴和y轴的刻度

plt.xlabel(years(+2000))

plt.ylabel(housing average price(*2000 yuan))plt.ylim(0, 15)

plt.title('line_regression & gradient decrease')plt.legend()

    xlabel : 设置X轴的文字
    ylabel : 设置Y轴的文字
    title : 设置图表的标题
    ylim : 设置Y轴的范围
    legend : 显示图示

3 去掉框体

不知道为什么用Matplotlib绘制出来的图形总是带边框,由于不需要,百度谷歌了好久才找到方法。其中百度是找不到的,找到的方法也是不能用,最后在官网发现一些module,才从中找了去掉边框的方法。但是还不是太理解。代码如下:


def formatAxes(ax):
ax.margins(0)
ax.set_axis_off()

其中ax 为需要传入的gac (gac:Matplotlib为每个显示对象创建与之对应的句柄。通过对象句柄,可以调整图形的属性。)
4 根据x,y坐标绘图

需要用到matplotlib提供的==pylab==的模块,其中包括了许多numpy和pyplot中常用的函数,方便用户快速进行计算和绘图,可以用于IPython中的快速交互式使用。

plt.plot(x, y, 'b*')#,label=$cos(x^2)$)

plt.plot(x, y, 'r')

plot函数的调用方式很灵活,第一句将x,y数组传递给plot之后,用关键字参数指定各种属性:
label : 给所绘制的曲线一个名字,此名字在图示(legend)中显示。只要在字符串前后添加$符号,matplotlib就会使用其内嵌的latex引擎绘制的数学公式。
5 保存图片

savefig('D:/id.jpg')

@myyyy myyyy added the python label Mar 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.