Dessiner des graphiques dans le langage de programmation Julia

J'ai essayé de créer un environnement pour dessiner des graphiques avec le langage de programmation Julia. Le Package PySide a été ajouté. L'exemple de programme qui affiche le graphique à la fin de la phrase est attaché au PySide Package de Julia. Avec quelques modifications (ajout de PySide.app [: exec_]() à la dernière ligne). (Si vous avez des bugs ou des commentaires, veuillez contacter https://twitter.com/akmiyoshi)

J'ai (plus tard) posté la procédure de création d'un environnement sous Windows 7 </ del>. Si vous êtes intéressé, veuillez stocker.

Mon environnement est Windows 7 Home Premium 64 bits, mais j'ai installé la version 32 bits du programme pour toute construction d'environnement. Si vous suivez cette procédure, elle fonctionnera sur les versions 32 bits et 64 bits du système d'exploitation Windows (XP SP2 ou version ultérieure).

[Ajout] Les étapes 4, 6 et 11 ont été ajoutées au 04/07/2014. Si vous avez vu cet article et créé votre environnement avant le 04/07/2014, veuillez suivre les étapes 4, 6 et 11. Je vous remercie.

pyqtgraph.gif

1. Installez Python 2.7.7 (32 bits).

2014-0701-1224.png

2. Installez numpy (32 bits).

3. Installez scipy (32 bits).

4. Installez matplotlib. (Ajouté le 04/07/2014)

5. Installez pip (un outil pour installer / gérer les packages Python).

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

6. Installez les bibliothèques dépendantes de matplotlib. (Ajouté le 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. Installez PySide.

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

8. Installez PyOpenGL.

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

9. Installez PyQtGraph (32 bits).

10. Installez Julia (32 bits).

11. Ajoutez le package PyPlot à Julia. (Ajouté le 04/07/2014)

julia> Pkg.add("PyPlot")

12. Ajoutez le package PySide à Julia.

julia> Pkg.add("PySide")

13. Exécutez l'exemple de programme.

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

Dessiner des graphiques dans le langage de programmation Julia
Dessinez des graphiques dans Julia ... Laissez les graphiques à Python
Le langage de programmation le plus recherché en 2020
Programmation pour combattre dans le monde ~ 5-1
Programmation pour combattre dans le monde ~ 5-5,5-6
Programmer pour combattre dans le monde 5-3
Fiche d'activité dans le cercle de programmation
Programmation pour combattre dans le monde - Chapitre 4
Changer la langue affichée dans Django 1.9
Démarrez avec SQLite dans un langage de programmation
Programmation pour combattre dans le monde ~ 5-2
Langage de programmation dont les jeunes auront besoin à l'avenir
Retour sur 2016 dans le langage Crystal
Lignes directrices pour se réincarner dans le monde du développement de programmation Linux (langage C / C ++)
Programmation avec Python
Des outils qui tiennent dans votre main (langage de programmation)
Dessine un graphique avec Julia ... j'ai essayé une petite analyse
Comprenez attentivement la distribution exponentielle et dessinez en Python
Le Japon peut être des galapagos en termes de langage de programmation
Langage de programmation qui protège les gens de NHK
Vérifiez s'il s'agit d'Unix dans le langage de script
Comprendre attentivement la distribution de Poisson et dessiner en Python
Vérifiez s'il s'agit d'Unix dans le langage de script
Le langage de programmation que vous souhaitez pouvoir utiliser
Parlez de l'API d'acquisition du temps dans le langage de programmation
Le langage de programmation populaire de Qiita
Programmation Python avec Excel
Dessiner un graphique avec python
Sortie "Dessiner fougère par programmation" dans le processus de dessin en Python
Remarques sur l'intégration du langage de script dans les scripts bash
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé de programmer le test du chi carré en Python et Java.
[Pyro] Modélisation statistique par le langage de programmation probabiliste Pyro ① ~ Qu'est-ce que Pyro ~
Explication du CSV et exemple d'implémentation dans chaque langage de programmation