C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ChartのX軸のタイトル表示 [2]


(過去ログ 148 を表示中)

[トピック内 48 記事 (41 - 48 表示)]  << 0 | 1 | 2 >>

■86586 / inTopicNo.41)  Re[20]: ChartのX軸のタイトル表示
  
□投稿者/ shu (1098回)-(2018/02/18(Sun) 00:14:00)
No86580 (mako さん) に返信
 
>>さらにループも時間毎にグループ化する必要がないのでループのネストが不要になります。
> No86531でのこの部分は結局どうすれば良いのか分かりませんでした。
hでのGroup化をなくせば
For Each rowItm In itm.rows
のループをはずすことが出来ます


>>dtRow(0) = Uridat(i).Jikoku    '時刻
> もしかしてこの時点で先に文字列型から日付型 (Date)に変換しておいた方がプログラムの簡素化には繋がるのでしょうか?
確かにその通りですが、DataTable dtの定義が
.Add("時刻", GetType(String))
となっている部分が実際の実装上不可欠ということであれば変換しても文字列になるので無意味です。
.Add("時刻", GetType(Date))
と出来るのであればいみがあります。


> 
> なお、↓のプログラムですと、60分を越える120分(1時間)、240分(2時間)などともなると表示は60分と同じともなってしまいます。
> 
>                     If d.Minute Mod IntrMin = 0 Then
この条件が0分を起点として割ったあまりが0という条件なのでそうなります。
そういうことであれば起点とする時間からの総分数に対し条件判定を行う必要があります。


ループの部分の改良版は以下となります。
*マークの付くデータが最初に現れないと正常に動作しません。
        Dim tmFirst As Date = Nothing
        For Each rowItm In (From r In Src.Tables(0).Select()
                            Let d = Function(s As String) As Date
                                        Dim d2 As Date = Nothing
                                        If Date.TryParseExact(s, {"HH:mm", "HH: mm", "H:m"}, Nothing, Nothing, d2) Then
                                            Return d2
                                        Else
                                            Return CDate(Nothing)
                                        End If
                                    End Function(r.Field(Of String)("時刻"))
                            Order By d)

            Dim row = rowItm.r
            Dim d = rowItm.d
            Dim isMark = CType(row("マーク"), String) = "*"
            Dim disp = isMark
            If isMark Then
                tmFirst = d.AddMinutes(-tmFirst.Minute)
            Else
                If CInt(d.Subtract(tmFirst).TotalMinutes) Mod IntrMin = 0 Then
                    disp = True
                End If
            End If
            If disp Then
                If CType(row("マーク"), String) = "*" Then
                    For i = 1 To 2
                        ret.Rows.Add(x, DBNull.Value, DBNull.Value, DBNull.Value) : x += 5
                    Next
                End If
                ret.Rows.Add(x, d, row("数量1"), row("数量2"))
                x += 5
            End If
        Next

引用返信 編集キー/
■86587 / inTopicNo.42)  Re[21]: ChartのX軸のタイトル表示
□投稿者/ mako (24回)-(2018/02/18(Sun) 14:33:27)
No86586 (shu さん) に返信

お世話になります。

教えて頂いたようにしたとは思うのですが・・、

今回は棒グラフの棒もタイトルの表示のあるとこにしか立たなくなりました。

それと、例えばDim intr = 30 での場合の表示はタイトルと棒グラフの棒ともに
08:30 空白 空白 10:20 10:50 11:20 11:50 12:20 12:50 13:20 12:50 となり、
当初ように 8:10 8:30 空白 空白 10:20 10:30 11:00 11:30 12:00 12:30 13:00 13:30 とはなりませんでした。

また、同じく Dim intr = 60 での場合はタイトルと棒グラフの棒ともに
空白 空白 10:20 11:20 12:20 13:20 となり
8:10 空白 空白 10:20 11:00 12:00 13:00 とはなりませんでした。

タイトルの表示時間は時計での区切りの良い時間です。
15分ですと00分 15分 30分 45分 00分・・、 30分ですと 00分 30分 00分・・ のようにです。

引用返信 編集キー/
■86588 / inTopicNo.43)  Re[22]: ChartのX軸のタイトル表示
□投稿者/ shu (1099回)-(2018/02/18(Sun) 21:01:37)
No86587 (mako さん) に返信
> ■No86586 (shu さん) に返信
>
> お世話になります。
>
> 教えて頂いたようにしたとは思うのですが・・、
>
> 今回は棒グラフの棒もタイトルの表示のあるとこにしか立たなくなりました。
>
> それと、例えばDim intr = 30 での場合の表示はタイトルと棒グラフの棒ともに
> 08:30 空白 空白 10:20 10:50 11:20 11:50 12:20 12:50 13:20 12:50 となり、
> 当初ように 8:10 8:30 空白 空白 10:20 10:30 11:00 11:30 12:00 12:30 13:00 13:30 とはなりませんでした。
>
> また、同じく Dim intr = 60 での場合はタイトルと棒グラフの棒ともに
> 空白 空白 10:20 11:20 12:20 13:20 となり
> 8:10 空白 空白 10:20 11:00 12:00 13:00 とはなりませんでした。
8:10にマークがついてないからだと思います。

>
> タイトルの表示時間は時計での区切りの良い時間です。
> 15分ですと00分 15分 30分 45分 00分・・、 30分ですと 00分 30分 00分・・ のようにです。
tmFirst = d.AddMinutes(-d.Minute)
に直してみてください。
引用返信 編集キー/
■86589 / inTopicNo.44)  Re[23]: ChartのX軸のタイトル表示
□投稿者/ mako (25回)-(2018/02/19(Mon) 00:08:40)
No86588 (shu さん) に返信

お世話になります。

> 8:10にマークがついてないからだと思います。
ありがとうございます。
08:10は表示されるようになりました。
同時にその左側にも空白が出来ましたがそれは構いません。
表示はスクロールバーも付け直近からの表示としますので。

>>タイトルの表示時間は時計での区切りの良い時間です。
>>15分ですと00分 15分 30分 45分 00分・・、 30分ですと 00分 30分 00分・・ のようにです。
> tmFirst = d.AddMinutes(-d.Minute)
> に直してみてください。
ありがとうございます。
希望のようになりました。

このうえはどのようにして、タイトルの間に棒グラフの棒を表示されるかです。
自動でタイトルを表示した時のように。

引用返信 編集キー/
■86590 / inTopicNo.45)  Re[24]: ChartのX軸のタイトル表示
□投稿者/ shu (1100回)-(2018/02/19(Mon) 11:07:32)
No86589 (mako さん) に返信

> このうえはどのようにして、タイトルの間に棒グラフの棒を表示されるかです。
> 自動でタイトルを表示した時のように。

Dim x = 1
Min = x

Dim x = 0
Min = x
に変更するとよいと思います。

引用返信 編集キー/
■86591 / inTopicNo.46)  Re[25]: ChartのX軸のタイトル表示
□投稿者/ mako (26回)-(2018/02/19(Mon) 14:17:49)
No86590 (shu さん) に返信

お世話になります。

>>このうえはどのようにして、タイトルの間に棒グラフの棒を表示されるかです。
>>自動でタイトルを表示した時のように。
>
> Dim x = 1
> Min = x
> を
> Dim x = 0
> Min = x
> に変更するとよいと思います。
>
例えば Dim intr = 5 ですと
タイトルと棒グラフの棒ともに 空白 空白 08:10 08:15 08:20 ・・・・・とはなりましたが、
当初や自動で表示した時のような棒グラフの棒は表示されませんでした。

例えば 08:10と08:15の間ですとこのような表示になればと。
 空白 空白 <08:10>(08:11)(08:12)(08:13)(08:14)<08:15>

<> は タイトルと棒グラフの棒ともに表示で、
( ) は タイトルは表示せず 棒グラフの棒のみの表示です。
引用返信 編集キー/
■86592 / inTopicNo.47)  Re[26]: ChartのX軸のタイトル表示
□投稿者/ shu (1101回)-(2018/02/19(Mon) 15:02:26)
No86591 (mako さん) に返信

> 例えば 08:10と08:15の間ですとこのような表示になればと。
>  空白 空白 <08:10>(08:11)(08:12)(08:13)(08:14)<08:15>
>
> <> は タイトルと棒グラフの棒ともに表示で、
> ( ) は タイトルは表示せず 棒グラフの棒のみの表示です。
CustomLabelの表示条件が変わってくるのでx軸のLabel表示位置用のマークを持つようにして
そのマークのところにCustomLabelを設定するようにしてみてはどうでしょう?
引用返信 編集キー/
■86612 / inTopicNo.48)  Re[27]: ChartのX軸のタイトル表示
□投稿者/ mako (27回)-(2018/02/20(Tue) 19:09:39)
No86592 (shu さん) に返信

表示位置用のマークを持ってそのところにCustomLabelを設定する。
意味は分かるのですが実践はできませんでした。

引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 | 2 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -