Python作图程序

Python作图程序,第1张

实战小程序:画出y=x^3的散点图

样例代码如下:

[python] view plain copy

#coding=utf-8

import pylab as y    #引入pylab模块

x = y.np.linspace(-10, 10, 100)  #设置x横坐标链败范围和点数

y.plot(x, x*x*x,'or')  #生成图像

ax = y.gca()

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

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

ax.xaxis.set_ticks_position('bottom')

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

ax.yaxis.set_ticks_position('left')

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

ax.set_yticks([-1000, -500, 500, 1000])

y.xlim(x.min() , x.max() ) #将横坐标设置为x的最大值和最小值

y.show() #显示图像

[python] view plain copy

import pylab as y

程棚谨颤序中引入的pylab属于matplotlib的一个模块,将其名字用y代替,其中包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用。

[python] view plain copy

y.np.linspace(-10, 10, 100)

此为numpy中的一个函数,返回的是等间距的值,numpy.linspace(a,b,c):a指的是开始位置,b表示的是结束位置,c表示产生点的个数(默认为50)

举例:

[python] view plain copy

>>> np.linspace(2.0, 3.0, num=5)

array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ])

[python] view plain copy

y.plot(x, x*x*x,'or')  #生成图像

后面加上‘o'晌姿表示为散点图

'r'可设置颜色为红色,基本上和matlab的 *** 作很像。

[python] view plain copy

y.xlim(x.min(), x.max())

这条语句使用了xlim函数,将横坐标设置为x的大小

import java.awt.event.MouseEvent

import java.awt.event.MouseListener

import javax.swing.*

import java.awt.*

import java.util.LinkedList

public class DrawPoint extends JFrame implements MouseListener{

private LinkedList<Point> list//新建一个Point类型的链表存储用于存储“节点”

private final int WIDTH=318,HEIGHT=340

private Dimension scrnsize

private Toolkit toolkit = Toolkit.getDefaultToolkit()

public DrawPoint() {

// TODO Auto-generated constructor stub

list=new LinkedList<Point>()//链表初始化

//窗口设置部分,不比细究

this.setSize(WIDTH,HEIGHT)

this.setResizable(false)

this.setDefaultCloseOperation(EXIT_ON_CLOSE)

scrnsize = toolkit.getScreenSize()

setLocation(scrnsize.width / 2 - getWidth() / 2,

scrnsize.height / 2 - getHeight() / 2)

this.addMouseListener(this)//添加窗口鼠标监听

this.setVisible(true)

}

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

}

@Override

public void mouseEntered(MouseEvent e) {

// TODO Auto-generated method stub

}

@Override

public void mouseExited(MouseEvent e) {

// TODO Auto-generated method stub

}

@Override

public void mousePressed(MouseEvent e) {

// TODO Auto-generated method stub

}

@Override

public void mouseReleased(MouseEvent e) {

//为鼠标按钮释放添加事件处理

// TODO Auto-generated method stub

int x=e.getX()//获取鼠标的x坐标

int y=e.getY()//获取李族鼠标的y坐标哪枣弊

String str=JOptionPane.showInputDialog(null, "请输入改点标记文字")

//显示对话框,根据用户输入得到标记文字岩隐

if(str!=null){//若标记文字不为空,则该点视为有效点,将该点加入链表

list.add(new Point(x,y,str))

}

repaint()//用该函数调用paint()方法,进行重构 *** 作

this.validate()

}

public void paint(Graphics g){

if(list.isEmpty())//如果链表为空,不进行任何 *** 作,直接返回

return

for(Point p:list){//遍历数组,获取所有节点

g.drawOval(p.getX(), p.getY(), 2, 2)//先画点

g.drawString(p.getS(), p.getX()+5, p.getY()+6)//再标注节点的描述性文字

}

}

public static void main(String args[]){

DrawPoint p=new DrawPoint()

}

}

class Point {//节点类,包含x坐标,y坐标,描述性文字3个属性

private int x,y//x坐标和y坐标

private String s//描述性文字

public Point(){

x=0

y=0

s=""

}

public Point(int x,int y,String s){

this.x=x

this.y=y

this.s=s

}

public int getX(){

return x

}

public int getY(){

return y

}

public String getS(){

return s

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12521519.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存