[PYTHON] Zeichnen Sie Grafiken in der Programmiersprache Julia

Ich habe versucht, eine Umgebung zum Zeichnen von Grafiken mit der Programmiersprache Julia zu erstellen. Das PySide-Paket wurde hinzugefügt. Das Beispielprogramm, das die Grafik am Ende des Satzes anzeigt, ist dem PySide-Paket von Julia beigefügt. Mit einigen Änderungen (PySide.app : exec_ in der letzten Zeile hinzugefügt). (Wenn Sie Fehler oder Kommentare haben, wenden Sie sich bitte an https://twitter.com/akmiyoshi)

Ich habe (später) die Prozedur zum Erstellen einer Umgebung unter Windows 7 </ del> veröffentlicht. Bei Interesse bitte lagern.

Meine Umgebung ist Windows 7 Home Premium 64-Bit, aber ich habe die 32-Bit-Version des Programms für alle Umgebungskonstruktionen installiert. Wenn Sie dieses Verfahren befolgen, funktioniert es sowohl unter 32-Bit- als auch unter 64-Bit-Versionen des Windows-Betriebssystems (XP SP2 oder höher).

[Hinzufügung] Die Schritte 4, 6 und 11 wurden zum 04.07.2014 hinzugefügt. Wenn Sie diesen Artikel gesehen und Ihre Umgebung vor dem 04.07.2014 erstellt haben, befolgen Sie bitte die Schritte 4, 6 und 11. Vielen Dank.

pyqtgraph.gif

1. Installieren Sie Python 2.7.7 (32 Bit).

2014-0701-1224.png

2. Installieren Sie numpy (32bit).

3. Installieren Sie scipy (32bit).

4. Installieren Sie matplotlib. (Hinzugefügt am 04.07.2014)

5. Installieren Sie pip (ein Tool zum Installieren / Verwalten von Python-Paketen).

C:\Users\root>c:\get-pip.py

6. Installieren Sie die matplotlib-abhängigen Bibliotheken. (Hinzugefügt am 04.07.2014)

C:\Users\root>cd \Python27\Scripts

C:\Users\root>cd \Python27\Scripts
C:\Python27\Scripts>pip install -U python-dateutil
C:\Python27\Scripts>pip install -U pyparsing

7. Installieren Sie PySide.

C:\Users\root>cd \Python27\Scripts
C:\Python27\Scripts>pip install -U PySide

8. Installieren Sie PyOpenGL.

C:\Users\root>cd \Python27\Scripts
C:\Python27\Scripts>pip install -U PyOpenGL

9. Installieren Sie PyQtGraph (32 Bit).

10. Installieren Sie Julia (32 Bit).

11. Fügen Sie Julia das PyPlot-Paket hinzu. (Hinzugefügt am 04.07.2014)

julia> Pkg.add("PyPlot")

12. Fügen Sie Julia das PySide-Paket hinzu.

julia> Pkg.add("PySide")

13. Führen Sie das Beispielprogramm aus.

pyqtgraph.jl


## using the PyQtGraph submodule
## Examples from pyqtgraphs plotting.py
## translated into julia style

using PySide
reload(Pkg.dir("PySide", "src", "pyqtgraph.jl"))
using PyQtGraph
using PyCall


w = Widget()
lyt = VBoxLayout(w)
setLayout(w, lyt)

## Graphics Layout Widget make grid of plot devices
win = GraphicsLayoutWidget(w)
addWidget(lyt, win)
set_size(w, 800, 600)

raise(w)

## addPlot adds a plot device in next column over and returns a plot object
p1 = addPlot(win, title="Basic array plotting")
p1.plot(randn(100))

p2 = addPlot(win, title="Multiple curves")
p2.plot(randn(100), pen=(255,0,0))
p2.plot(randn(100) .+ 5, pen=(0, 255, 0))
p2.plot(randn(100) .+ 10, pen=(0,0,255))


p3 = addPlot(win, title="Drawing with points")
p3.plot(randn(100), pen=(200, 200, 200), symbolBrush=(255,0,0), symbolPen="w")

nextRow(win)

p4 = addPlot(win, title="Parametric, grid enabled")
p4.plot(sin(linspace(0, 2pi, 1000)), cos(linspace(0, 2pi, 1000)))
p4.showGrid()                   # defaults x=true, y=true

p5 = addPlot(win, title="Scatter plot, axis labels, log scale")
x = 1e-5 * rand(1000)
y = x*1000 .+ 0.005 * randn(1000)
y -= minimum(y).-1.0
mask = x .> 1e-15
x = x[mask]
y = y[mask]
p5.plot(x, y, pen=nothing, symbol="t", symbolPen=nothing, symbolSize=10, symbolBrush=(100, 100, 255, 50))
p5.setLabel("left", text="Y Axis", units="A")
p5.setLabel("bottom", text="Y Axis", units="s")
p5.setLogMode(x=true, y=false)



p6 = addPlot(win, title="Updating plot")

curve = p6.plot(pen="y")
data = randn(10000, 10)
ptr = 0
function update()
    global curve, data, ptr, p6
    qinvoke(curve, :setData, 1:10_000, data[:, 1 + ptr]) # had to fix this
    if ptr == 0
        p6.enableAutoRange("xy", false)  ## stop auto-scaling after the first data set is plotted
    end
    ptr = (ptr + 1) % 10
end


timer = QtCore[:QTimer]()
qconnect(timer, :timeout, update)
qinvoke(timer, :start, 50)


nextRow(win)


p7 = addPlot(win, title="Filled plot, axis disabled")
y = sin(linspace(0.0, 10, 1000)) .+ randn(1000)*0.1
p7.plot(y, fillLevel=-0.3, brush=(50,50,200,100))
p7.showAxis("bottom", show=false)



p8 = addPlot(win, title="Region Selection")

x2 = linspace(-100, 100, 1000)
data2 = sin(x2) ./ x2
p8.plot(data2, pen=(255,255,255,200))

## no special functions for LinearRegionItem
lr = pyqtgraph.(:LinearRegionItem)([400,700])
qinvoke(lr, :setZValue, -10)
p8.addItem(lr)

p9 = addPlot(win, title="zoom")
p9.plot(data2)

function updatePlot()
    p9.setXRange(lr[:getRegion]()...,padding=0)
end
function updateRegion()
    view_range = qinvoke(p9, [:getViewBox, :viewRange]) # 2x2 array
    x_range = Int[view_range[1,j] for j in 1:2]         # a vector, not just view_range[1,:]'
    lr[:setRegion](x_range)
end
qconnect(lr, :sigRegionChanged, updatePlot)
#qconnect(p9, :sigXRangeChanged, updateRegion) ## this is giving issues. Find out why.
updatePlot()

 #raise(w)

PySide.app[:exec_]()

Recommended Posts

Zeichnen Sie Grafiken in der Programmiersprache Julia
Zeichnen Sie Diagramme in Julia ... Überlassen Sie die Diagramme Python
Die gefragteste Programmiersprache im Jahr 2020
Programmieren, um in der Welt zu kämpfen ~ 5-1
Programmierung, um in der Welt zu kämpfen ~ 5-5,5-6
Programmieren, um in der Welt zu kämpfen 5-3
Aktivitätsprotokoll im Programmierkreis
Programmierung für den Kampf in der Welt - Kapitel 4
Wechseln Sie die in Django 1.9 angezeigte Sprache
Erste Schritte mit SQLite in einer Programmiersprache
Programmieren, um in der Welt zu kämpfen ~ 5-2
Programmiersprache, die junge Menschen in Zukunft brauchen werden
Rückblick auf 2016 in der Crystal-Sprache
Richtlinien für die Reinkarnation in der Welt der Linux-Programmierentwicklung (C / C ++ - Sprache)
Programmieren mit Python
Werkzeuge, die in Ihre Hand passen (Programmiersprache)
Zeichne ein Diagramm mit Julia ... Ich habe eine kleine Analyse versucht
Verstehen Sie die Exponentialverteilung sorgfältig und zeichnen Sie in Python
Japan kann in Bezug auf die Programmiersprache Galapagos sein
Programmiersprache, die die Menschen vor NHK schützt
Überprüfen Sie, ob es sich um Unix in der Skriptsprache handelt
Verstehe die Poisson-Distribution sorgfältig und zeichne in Python
Die Programmiersprache, die Sie verwenden möchten
Sprechen Sie über die Zeiterfassungs-API in der Programmiersprache
Qiitas beliebte Programmiersprache
Python-Programmierung mit Excel
Zeichnen Sie ein Diagramm mit Python
Geben Sie "Farn programmgesteuert zeichnen" in den Zeichenprozess in Python ein
Hinweise zum Einbetten der Skriptsprache in Bash-Skripte
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
[Pyro] Statistische Modellierung mit der probabilistischen Programmiersprache Pyro ~ What is Pyro ~
Erläuterung der CSV und Implementierungsbeispiel in jeder Programmiersprache