How to sign coordinate axes?

This forum is for eXpress++ general support.
Post Reply
Message
Author
User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

How to sign coordinate axes?

#1 Post by Eugene Lutsenko »

How to sign values on axes it is clear and how to sign coordinate axes?

The axis Y is signed so:

Code: Select all

DcAddDataAxis TO aDataAxis6 ;
        AXISTEXT "Количество встреч частоты фактов"  ;
        ALIGN RMC_DATAAXISLEFT  ;
        MINVALUE mMinY MAXVALUE mMaxY
And how similarly to sign an axis X?

Besides, how to draw the line without markers of meaning points and inscriptions about them which turn out if to use a code:

Code: Select all

DcAddLineGroup TO aLineGroupIndus ;
        DATA aData ;
        WHICHDATAAXIS 2 ;
        STYLE RMC_LINE_CABLE ;
        COLOR Green ;
        LINESTYLE RMC_LSTYLE_LINE ;
        SYMBOLSTYLE RMC_SYMBOL_BULLET ;
        VALUELABEL 1
How to make lines of different thickness and color?

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: How to sign coordinate axes?

#2 Post by Eugene Lutsenko »

To clean inscriptions on markers it turned out:

Image

And whether isn't present on graphic library of the demonstration program, the xdemo.exe type that it was possible to look as graphic elements will look at different styles from rmchart.ch and how they are programmatically realized? It is possible to touch, of course, them most, but it is inconvenient

User avatar
Tom
Posts: 1234
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: How to sign coordinate axes?

#3 Post by Tom »

Try "LABELTEXT <aLabelArray>" at DCAddDataAxis.
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: How to sign coordinate axes?

#4 Post by Eugene Lutsenko »

I would like to sign an axis X approximately as shown an arrow, instead of values of argument on this axis:

Image

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: How to sign coordinate axes?

#5 Post by Eugene Lutsenko »

As all the same prompt how to make please an axis X inscription in this program:

Code: Select all

****************************************************************************************************************************************
*** 3.7.1. Поиск и удаление артефактов (робастная процедура)
***        Строится частотное распределение абсолютных частот встреч признаков в классах по матрице сопряженности Abs.dbf
***        и пользователю предоставляется возможность удалить редко встречающиеся факты (сочетания), как случайные выбросы или артефакты
****************************************************************************************************************************************
FUNCTION F3_7_1()

LOCAL GetList[0], GetOptions, oRmChart, oRegion1, oRegion2, oRegion3, ;
      oRegion4, oRegion5, oRegion6, aBarGroup[0], aLineGroup[0], aPie[0], ;
      aDonut[0], aBarGroupFloat[0], aBarGroupIndus[0], aLineGroupIndus[0], ;
      aDataAxis1[0], aDataAxis5[0], aDataAxis6[0], cRegSvr, ;
      cRmChart, cClsId, cRegQuery, nWhich, oStatus

******* Проверка возможности работать в системе ******************************************

IF M_KodAdmAppls = 0  // Выйти из системы если нет авторизации
   LB_Warning("Вы не авторизовались в системе и не можете ей пользоваться!")
   RETURN NIL
ENDIF
IF ApplChange()       // Перейти в папку выбранного приложения или выйти из системы
   LB_Warning("Необходимо задать (выбрать) хотя бы одно текущее приложение !!!")
   RETURN NIL
ENDIF

IF .NOT. FILE("Abs.dbf")          // Нет БД Abs.dbf
   LB_Warning("В текущем приложении нет БД Abs.dbf. Необходимо ее создать в 3-й подсистеме !!!")
ENDIF

Mess := {}
DO CASE
   CASE OSVER() = "3.1"
        AADD(Mess, 'На комьютере установлена MS Windows NT 3.1')
   CASE OSVER() = "3.5"
        AADD(Mess, 'На комьютере установлена MS Windows NT 3.5')
   CASE OSVER() = "3.51"
        AADD(Mess, 'На комьютере установлена MS Windows NT 3.51')
   CASE OSVER() = "4.0"
        AADD(Mess, 'На комьютере установлена MS Windows NT 4.0')
   CASE OSVER() = "5.0"
        AADD(Mess, 'На комьютере установлена MS Windows 2000')
   CASE OSVER() = "5.1"
        AADD(Mess, 'На комьютере установлена MS Windows XP')
   CASE OSVER() = "5.2"
        AADD(Mess, 'На комьютере установлена MS Server 2003')
ENDCASE
IF LEN(Mess) > 0
   AADD(Mess, 'А для работы профессиональной графики нужна:')
   AADD(Mess, 'MS Windows Vista / MS Windows Server 2008 или')   // OSVER() = "6.0"
   AADD(Mess, 'MS Windows 7 / MS Windows Server 2008 R2')        // OSVER() = "6.1"
   LB_Warning(Mess, 'Сообщение о неудачном завершении операции')
   RETURN NIL
ENDIF

// Еще сделать проверку на то, проинсталлирован ли ActiveX

******* Подготовка данных (расчет частотного распределения абсолютых частот) *************

CLOSE ALL
USE ABS EXCLUSIVE NEW
SELECT ABS
N_Rec = RECCOUNT()
N_Col = FCOUNT()

nMax  = 2*(N_Rec-2)
Mess = '3.7.1. Подготовка данных для визуализации частотного распределения абс.частот'
@ 4,5 DCPROGRESS oProgress SIZE 95,1.1 MAXCOUNT nMax COLOR GRA_CLR_BLUE PERCENT EVERY 100
DCREAD GUI TITLE Mess PARENT @oDialog FIT EXIT
oDialog:show()
nTime = 0

mMinX = 0
mMaxX = 0
DC_GetProgress(oProgress,0,nMax)
FOR i=1 TO N_Rec-2
    DBGOTO(i)
    FOR j=1 TO N_Col-3
        Fv = FIELDGET(2+j)
        mMinX = MIN(mMinX, Fv)
        mMaxX = MAX(mMaxX, Fv)
    NEXT
    DC_GetProgress(oProgress, ++nTime, nMax)
NEXT

PRIVATE aData[mMaxX]
PRIVATE aLabelText[mMaxX]
AFILL(aData,0)
AFILL(aLabelText,' ')

mMinY = 0
mMaxY = 0
FOR i=1 TO N_Rec-2
    DBGOTO(i)
    FOR j=1 TO N_Col-3
        Fv = FIELDGET(2+j)
        IF Fv > 0
           aData[Fv] = aData[Fv] + 1
           aLabelText[Fv] = ALLTRIM(STR(Fv))
           mMinY = MIN(mMinY, aData[Fv])
           mMaxY = MAX(mMaxY, aData[Fv])
        ENDIF
    NEXT
    DC_GetProgress(oProgress, ++nTime, nMax)
NEXT

DC_GetProgress(oProgress,nMax,nMax)
oDialog:Destroy()

***** ВИЗУАЛИЗАЦИЯ ГРАФИКА *************************************************************

***** Размер окна для отображения графика **********************************************

* --- RMChart ActiveX Control --
@ 0,0 DCRMCHART oRmChart SIZE 1140, 640 RESIZE DCGUI_RESIZE_RESIZEONLY

***** Линейный график: исходные данные *************************************************

IF LEN(aData) < 20

   DcAddLineGroup TO aLineGroupIndus ;
        DATA aData ;
        WHICHDATAAXIS 2 ;
        STYLE RMC_LINE_CABLE ;
        COLOR Green ;
        LINESTYLE RMC_LSTYLE_LINE ;
        SYMBOLSTYLE RMC_SYMBOL_BULLET ;
        VALUELABEL 1
ELSE

   DcAddLineGroup TO aLineGroupIndus ;
        DATA aData ;
        WHICHDATAAXIS 2 ;
        STYLE RMC_LINE_CABLE ;
        COLOR Green ;
        LINESTYLE RMC_LSTYLE_LINE ;
        SYMBOLSTYLE RMC_SYMBOL_BULLET

ENDIF


****************************************************************************************
*GraStringAt( oRMChart, { 275, 10 }, "Частота события" )

DcAddDataAxis TO aDataAxis6 ;
        AXISTEXT "Количество встреч определенной частоты событий"  ;
        ALIGN RMC_DATAAXISLEFT  ;
        MINVALUE mMinY MAXVALUE mMaxY

@ 10,10 DcChartRegion oRegion6 ;                         // Координаты нижнего левого угла поля построения графика в окне
        PARENT oRMChart ;
        SIZE 1100, 550 PIXEL ;      // Размер поля построения графика в окне 1100 x 600
        CAPTION TITLE UPPER(ALLTRIM(M_NameAppl)) BACKCOLOR White TEXTCOLOR Black FONTSIZE 10 BOLD ;
        GRID ;
        DATAAXIS aDataAxis6 ;
        LABELAXIS LABELARRAY aLabelText ALIGN RMC_LABELAXISBOTTOM ;
        LINEGROUP aLineGroupIndus
****************************************************************************************

***** Кнопки визу **********************************************************************

@ 620, 0                    DCPUSHBUTTON CAPTION 'Помощь'                      SIZE  50,25 ;
                            ACTION {||Help3_7_1()}

@ DCGUI_ROW, DCGUI_COL + 10 DCPUSHBUTTON CAPTION 'Удаление артефактов'         SIZE 150,25 ;
                            ACTION {||Razrab()}

@ DCGUI_ROW, DCGUI_COL + 10 DCPUSHBUTTON CAPTION 'Записать графический файл'   SIZE 170,25 ;
                            ACTION {||SaveChartToBitmap(oRMChart)}

@ DCGUI_ROW, DCGUI_COL + 10 DCPUSHBUTTON CAPTION 'Записать графический файл'   SIZE 170,25 ;
                            ACTION {||SaveChartToBitmap(oRMChart)}

@ DCGUI_ROW, DCGUI_COL + 10 DCPUSHBUTTON CAPTION 'Копировать в буфер обмена'   SIZE 170,25 ;
                            ACTION {||SaveChartToClipboard(oRMChart)}

@ DCGUI_ROW, DCGUI_COL + 10 DCPUSHBUTTON CAPTION 'Печать'                      SIZE  50,25 ;
                            ACTION {||PrintChart(oRMChart)}
DCGETOPTIONS RESIZE PIXEL

DCREAD GUI ;
    SETAPPWINDOW ;
    FIT ;
    TITLE '3.7.1. Частотное распределение абсолютных частот по Abs.dbf.   (C) Универсальная когнитивная аналитическая система "Эйдос-Х++"' ;
    OPTIONS GetOptions ;
    EVAL {||oRMChart:RMCToolTipWidth := 100, ;
            oRMChart:RMCUserWatermark := '(C) Универсальная когнитивная аналитическая система "Эйдос-Х++"', ;
            oRMChart:RMCUserWMAlignment := RMC_TEXTRIGHT, ;
            oRMChart:RMCUserWMFontSize := 20, ;
            oRMChart:RMCUserWMLucent := 40, ;
            oRmChart:mouseDown := ;
            {|a,b,c,d,e,o|aData := e,nWhich := a,o:=Thread():new(),o:start({||BrowseCallbackData(nWhich,aData,oRMChart)})}, ;
            oRmChart:mouseMove := ;
            {|nMouseButton,b,nX,nY,aData|oRMChart:showToolTip( nMouseButton, nX, nY, aData )}, ;
            oRmChart:draw(), ;
            ShowDebugInfo(oRMChart)}
CLOSE ALL

RETURN NIL
[/size]

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: How to sign coordinate axes?

#6 Post by Eugene Lutsenko »

In the end, I just signed myself and all-axis:

Code: Select all

@ 380,560 DCGRASTRING "Частота события" COLOR Black FONT '11.Tahona'
Image

Could not find a similar version of it, just for the X axis:

Code: Select all

   DcAddDataAxis TO aDataAxis6 ;
        AXISTEXT "Количество встреч определенной частоты событий"  ; // исходное
        ALIGN RMC_DATAAXISLEFT  ;
        MINVALUE mMinY MAXVALUE mMaxY ;
        TICKCOUNT 11 FONTSIZE 9 
By the way, how to make the inscription labels on the X axis vertical?

Post Reply