Tripoz

How to make graphic line ??

14 posts in this topic

Hi guys,

I've reading helpfile to make graphic, but i how can i convert from some values that i have to become graphic?

Let say i have 5 number: 500 , 503, 509, 502, 506

Thats just number (not coordinate in monitor)

How to convert that values to become graphic (line) like excel do??

 

Thx btw

Share this post


Link to post
Share on other sites



If you need it in Excel you could use my ExcelChart UDF.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

hi @water

nope, i dont need in excel.

i want to draw it in my GUI. but i confuse how to convert from "Coordinate" to be "Value".

i just want to make a tiny one in my GUI.

my code so far:

#include <GUIConstantsEx.au3>


GUICreate("My Draw")
GUICtrlCreateGraphic(20, 220, 80, 80)

local $val1 = 919, $val2 = 923, $Val3 = 921, $val4 = 918, $val5 = 922
$1_Val = $Val1 - $val2
$2_Val = $Val1 - $val3
$3_Val = $Val1 - $val4
$4_Val = $Val1 - $val5
GUICtrlSetGraphic(-1, $GUI_GR_DOT, 0, 0)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 30, ($1_Val*5))
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 60, ($2_Val*5))
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 90, ($3_Val*5))
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 120, ($4_Val*5))
GUISetState(@SW_SHOW)

While 1

    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            Exit
         EndSelect
WEnd

 

Share this post


Link to post
Share on other sites

Maybe something like this?

1 person likes this

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

You need always 2 coordinates for a pixel coordinate -> x and y.

What you do with the numbers makes no sense to  me.

 


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

Did you mean this?

lGl9tzs.png

Saludos

 

Share this post


Link to post
Share on other sites

Did you mean this?

lGl9tzs.png

Saludos

 

yes... like that..

in excel we do in "number" to make Grafic like above.

but in autoit is in "coordinate (X,Y)" so its difficult when i have some array number above 2000.

i just want to simulate the curve of graphic (visual only)

Share this post


Link to post
Share on other sites

Evenm in Excel you need two coordinates (x and y). In the above example 1, 2, 3, 4 are the values for the x-axis, 30, 60, 90, 120 the values for the y-axis.

Your data from the OP would be 1, 2, 3, 4, 5 for the x-axis and 500, 503, 509, 502, 506 for the y-axis.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

yes... sorry not to mention it.

yes the X-Axis is not important to me (maybe we can called it 1,2,3,4,etc) n just focus on Y-Axis..

 

Share this post


Link to post
Share on other sites

Creating graphic is one thing. But where do you want to use it? In an AutoIt GUI, in Excel, do you need to store it as JPEG, PNG ...?
The solution to be used depends on this questions.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

i want it to insert in blank space on my AutoIT GUI...

 

Share this post


Link to post
Share on other sites

Then the UDF mentioned in post #4 or this one should do the trick.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Here is an example of a plot in a graphic control (ctrl), on a graphical user interface (GUI).

#include <GUIConstantsEx.au3>
#include <Array.au3>
#include <StaticConstants.au3>

Local $aNumbers[5] = [500, 503, 509, 502, 506]
Local $iW = 600, $iH = 400
Local $Max = _ArrayMax($aNumbers), $Min = _ArrayMin($aNumbers)
;ConsoleWrite($Max & "  " & $Min & @LF)

Local $iXAxisSpacing = ($iW - 60) / (UBound($aNumbers) - 1) ; Graphic ctrl will be positioned 40 pixels from LH border of GUI & 20 pixels from RH border of GUI (40+20=60).
Local $iYAxisSpacing = ($iH - 74) / ($Max - $Min) ; Graphic ctrl will be positioned 30 pixels from top border of GUI & 44 pixels from bottom border of GUI (30+44=74).

Local $hGui = GUICreate("The Graph", $iW, $iH)

; X-axis labels
For $i = 0 To UBound($aNumbers) - 1
    GUICtrlCreateLabel($i + 1, ($i * $iXAxisSpacing) + 40 - 3, $iYAxisSpacing * ($Max - $Min + 1))
Next
; Y-axis labels
For $i = 0 To $Max - $Min
    GUICtrlCreateLabel($Max - $i, 4, $iYAxisSpacing * $i + 30 - 5)
Next

; Graph's Name
GUICtrlCreateLabel("Graph's Name - Numbers vs. Equal Intervals", $iW / 2 - 200, $iH - 25, 400, 23, $SS_CENTER)
GUICtrlSetFont(-1, 12, 800)

; Create Graphic Control
$idCtrlGraphic = GUICtrlCreateGraphic(40, 30, $iW - 60, $iH - 74)

; Graph area outline
GUICtrlSetGraphic(-1, $GUI_GR_RECT, 0, 0, (UBound($aNumbers) - 1) * $iXAxisSpacing, $iYAxisSpacing * ($Max - $Min))

GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xCCCCCC) ; Set light-gray line colour
; X-axis lines
For $i = 0 To UBound($aNumbers) - 1
    GUICtrlSetGraphic($idCtrlGraphic, $GUI_GR_MOVE, ($i * $iXAxisSpacing), $iYAxisSpacing * ($Max - $Min) + 3)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, ($i * $iXAxisSpacing), 0)
Next
; Y-axis lines
For $i = 1 To $Max - $Min - 1
    GUICtrlSetGraphic($idCtrlGraphic, $GUI_GR_MOVE, 0, $iYAxisSpacing * $i)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, (UBound($aNumbers) - 1) * $iXAxisSpacing, $iYAxisSpacing * $i)
Next

; Plot Graph
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x0000FF) ; Set 0x0000FF(blue) line colour
GUICtrlSetGraphic($idCtrlGraphic, $GUI_GR_MOVE, 0, ($Max - $aNumbers[0]) * $iYAxisSpacing)
For $i = 0 To UBound($aNumbers) - 1
    GUICtrlSetGraphic($idCtrlGraphic, $GUI_GR_LINE, ($i) * $iXAxisSpacing, ($Max - $aNumbers[$i]) * $iYAxisSpacing)
    GUICtrlSetGraphic($idCtrlGraphic, $GUI_GR_DOT, ($i) * $iXAxisSpacing, ($Max - $aNumbers[$i]) * $iYAxisSpacing)
Next

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $GUI_EVENT_CLOSE
            Exit
    EndSelect
WEnd

 

Share this post


Link to post
Share on other sites

@Malkey: back to the roots. ;)


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now