2022年9月19日月曜日

Pythonでヒストグラムを生成する【1/3】

ヒストグラムは、品質管理の七つ道具として有名で、これを作成するライブラリやソフトウェアは、数多くある。Pythonのライブラリにもmatlabがあるし、自分で作るものでもないのだが、Pythonistaたるものライブラリに頼らず自分で作っていきたいところである。
今回は、ExcelやLibre Office Calcで表示することを前提にCSVでヒストグラムを生成するコードを書いてみた。
出来栄えはこんな感じ、完璧なヒストグラムと言っても過言ではないではないだろう。


さて、これを作るにあたっては、元データを読み込んでから、いくつかステップを踏まねばならない。今回は以下の手順で行った。
  1. 横軸の作成
  2. データの分類
  3. グラフ化
以下では順を追ってみていきたい。

1.横軸の作成

横軸の作成の作成のためには、元データから最初の項目と最後の項目を確認したうえで、いくつのリストが必要かを確認し、横軸のデータを格納するリストを用意する必要がある。従って、以下のような処理が必要になる。
start = min(data_array)
end = max(data_array)
n = (end - start+1)// sep #(最大値-最小値+1)//横軸の幅
if (end - start+1)/sep != 0: 
	n += 1
ここでは、「(最大値 - 最小値+1) / 横軸の幅」の切り上げた値が用意すべきリストの数になることになる。つまり、1~100まで5刻みで横軸を用意したいのであれば、(100-1+1)/5 = 20、つまり20個のリストが必要となり、最後のリストには91~100までが格納される。また、1~101であれば、(101-1+1)/5 = 20.2となり、同様に21個のリストが必要となり、最後のリストには、101が格納される。
次に、軸の値を格納する必要がある。つまり、1~100まで10刻みであれば、1~10、11~20、21~30...といった形で軸の値をリストに格納していく必要がある。これは次のようになる。
#sep_listは軸の値を格納するためのリスト、sepは刻みの値、nは必要なリスト数
for i in range(n):
	if i == 0:
		sep_list.append([start, start + sep -1])
    else:
		previous = sep_list[i-1][1]
		nxt = previous + sep
		if nxt >= end:
			nxt = end
			if previous + 1 == nxt:
				sep_list.append([previous+1])
			else:
				sep_list.append([previous+1, nxt])
これは、前工程で確認したn個のリストの数だけループを回し、ループの最初で「[最小値,最小値+刻み-1,]」、それ以降は、「[前の値+1, 前の値+刻み]」といった形で処理を行っている。つまり、1~100を10刻みで軸とした場合は、最初のループで「[1, 1+10-1]」、二番目のループは「[10+1, 10+10]」という処理になっている。
これで横軸の作成が完了したので、次に収集したデータを分類して、ヒストグラム本体を作成していく。

2/3
3/3

2022年9月10日土曜日

File APIを用いたCSVファイルの入出力

VBAを使いたくないので、HTML+JavaScriptでCSVファイルを処理したいものの、File APIに関する記述がそこら中に散らばっていて、入出力をまとめた記事がないので今回作成してみた。

ファイルオブジェクトの読み書きに関してはPromiseとイベント駆動のものがあるが、今回は、わかりやすいのでイベント駆動のものを採用した。
EventListenerのコールバック関数に引数を与えるのはどうもうまくいかなかったので、グローバルオブジェクトにファイルの内容をロードする形にして読み込み→グローバルオブジェクトで読み書きとした。


    
let loaded_csv = []; //ファイル読み込み用のグローバルオブジェクト
function load(e){
	for (let file of e.target.files){
    	let reader = new FileReader();
        reader.onload = event => {
        	let csv = event.target.result.trim(/\r\n/).split(/\r\n/);
            csv = csv.map( x => x.split(','));
            loaded_csv.push(csv);
            }
            reader.readAsText(file);
        }
}

function create(write_array, filename){
	let csv_string = "";
    for (let i of write_array){
    	csv_string += i.join(',');
        csv_string += '\r\n';
    	}
	let b = new Blob([csv_string], {type: "text/csv"});
    let url_link = URL.createObjectURL(b);
    let link = document.createElement("a");
    link.download = filename;
    link.href = url_link;
    document.body.appendChild(link);
    link.click();
} 

2019年10月20日日曜日

AKの2点スリングを1点スリング風に使用する方法

今回はこのスリングとマルイのノーマルAK-47を使用



1.ストック側だけ普通にスリングを付ける

2.金具の下にスリングを通す形でストックに巻く

3.2回巻き付ける
4.上側で止めて完成

AKのみならずRPKやSVDSでもこの巻き方はできます。ただ、RPKやSVDSは重いので、負荷がかかり壊れる可能性が通常のAKより高いです。

2018年7月15日日曜日

黒い砂漠の闇商人の価格

某ブログに影響されたので私が引いた闇おじの価格を個人メモついでに公開
SSがないため正確な価格が分からないものについては残っていた価格メモを参考にした

2018年3月2日金曜日

東部戦線、第一次世界大戦期戦車の謎

第二次世界大戦の東部戦線において、複数両のMark Ⅴ、Mark Bと思われる車両が確認されている。更にベルリンの戦いにおいて破壊されたMarkⅤ戦車も確認されてる。これらの車両はどのようにしてソ連邦に持ち込まれ、どのような経緯でドイツ軍によって鹵獲されたのか。それを明かにしたい。
MarkⅤ―スモレンスク

Mark BまたはMark C―1941年スモレンスク-1

Mark BまたはMark C―1941年スモレンスク-2

Mark BまたはMark C―1941年スモレンスク-3
Mark BまたはMark C―1941年スモレンスク-4

 Die Deutsche Wochenschau Nr. 570 14:00

1.車輌の入手と戦間期

Mark Ⅴ、Mark Bも双方ともに英国製であり、帝政ロシアの時代にライセンス生産を行っていないことから外部からロシアに持ち込まれた。干渉戦争の際に干渉軍、白軍の支援のため約70両のMark Ⅴが北部、南部の両戦線に持ち込まれ、また、複数両のMark A、Mark B及びMark Cも同時に持ち込まれている。これらの車両は、連合軍、白軍、鹵獲した赤軍によって使用され、戦後には、30年代まで赤軍の教材として使われていた。その後、38年に国防人民委員令によってスモレンスク、ロストフ・ナ・ドヌ、ハリコフ、キエフ、レニングラード、ヴォロシロフグラード、アルハンゲリスクにロシア内戦のモニュメントとして配置されることとなった。
 また、北方に送られた車両のうち、北方のユーデニッヒ軍によって運用されていたMarkⅤの一部は、ホワイトソード作戦失敗後、リトアニアおよびラトビアへと撤退し、同地で両国によって接収された。40年のソ連によるバルト三国併合の際、赤軍がこれらの車両を接収した。


赤軍により鹵獲されたMark B




2.第二次世界大戦

バルバロッサ作戦の開始後、ドイツ軍は、スモレンスクとロストフ、キエフにてMarkⅤを鹵獲している。これらの車両は、写真を見る限りでは大きな破孔や履帯の切断が見られないことから直接戦闘には投入されていないと思われる。このうち、スモレンスクに展示されていた2両(一方の車体番号はNo.9146)は、ベルリンへと移送され、ツオィクハオスに設置された。この二両がベルリンの戦いに投入され、破壊された車両であると思われる。
 また、エストニア方面では、45mm砲を装備したMark Ⅴがソ連軍の撤退を支援するために配置され、戦闘に参加したといわれているが詳細は不明である。


1941年ハリコフ


1から4はどれも同じ場所で撮影されたようだが1は撮影時期が異なる可能性がある。
bundesarchivにさらに一枚
1941年(?)スモレンスク-1
1941年スモレンスク-2
1941年スモレンスク-3

1941年スモレンスク-4



1942年ルガンスク

1942年ルガンスク

ロストフまたはルガンスク

4.第二次世界大戦後

ヴォロシロフグラード、ハリコフ、アルハンゲリスクのMark Ⅴは現在も存在している。一方で、ロストフ・ナ・ドヌの車両は1948年に破棄された。キエフの車両は、破棄されたともドイツ軍によって持ち去られたともいわれており、詳細は判然としていない。レニングラードの車両についても不明である。


5.結論

MarkⅤやMark Bなどの英国製第一次世界大戦型の戦車は干渉戦争を通じてロシアへと持ち込まれ、内戦に参加した。その後の第二次世界大戦では、一部の車両がドイツ軍によって鹵獲されることとなり、ベルリンの戦いでソ連軍に再度鹵獲された。このようにMark Ⅴの数奇な運命が明らかになっている一方で、Mark Bに関する詳細は一切不明である。


エストニア軍のMark Vの写真については以下を参照
https://en.wikipedia.org/wiki/Mark_V_Composite_tank_in_Estonian_service


参考にしたサイト
Estonian Vintage
http://talesanecdotesandtrivia.blogspot.jp/2014/05/estonian-vintage.html

Ужасные и смешные
http://meotyda.ru/node/968

With Lieutenant Colonel Hope Carson in Estonia and Russia(Baltic Defence Review 2/1999)
https://web.archive.org/web/20110927074054/http://www.bdcol.ee/fileadmin/docs/bdreview/11bdr299.pdf

Kharkiv Sights | British Heavy Tank Mark V
https://ukraine-kiev-tour.com/ukraine_kharkiv_sights_british_heavy_tank_mark_v.html

British Tanks of the Inter-war Decades
http://www.alternativefinland.com/british-tanks-inter-war-decades/

Britain’s Forgotten Tank War
https://defenceoftherealm.wordpress.com/2015/02/17/britains-forgotten-tank-war/

White And Allied Tanks In Russia
http://www.minecreek.info/volunteer-army/white-and-allied-tanks-in-russia.html

Did you know that the Ukraine has TWO Mark V tanks??
https://www.warhistoryonline.com/war-articles/know-russia-two-mark-v-tanks.html/3

Фотографии города Харькова, 1941-43 гг. - сделаны немецкими оккупантами - страница клуба _Память_ Воронежского госуниверситета
http://samsv.narod.ru/Klb/City/Harkiv/gal1941.html

Танки на Пушкинской (1920...1942) - Ростов военный _!
http://www.rostovbereg.ru/photo/istorija_rostova/rostov_voennyj/fotografija_1/51-0-331

Charkow 1941
http://wk2.heimat.eu/fotoid44charkow.htm

MK V (WWI) tanks page1
http://beutepanzer.ru/Beutepanzer/uk/MK_V/Mk_V.htm

2017年10月22日日曜日

黒い砂漠:闇商人のアイテム出現

新データ(2017年10月18日アップデート後)

試行回数150 (2017年11月3日時点)

ブラックストーン類:123(82%
ブラックストーン防具束:109
ブラックストーン武器束:14

堅い、尖った:11(7.3%
堅い黒結晶の欠片:2
堅い黒結晶の欠片束:1
先の尖った黒結晶の欠片:5
先の尖った黒結晶の欠片束:3


青武器:8(5.3%
十全武神刀:1
蒼稲妻天聖棍棒:2
蠱惑の呪術デスサイズ:1
アロリアアドソウル:1
改良型バスターガントレ:1
オエキの月輪刀:1
傭兵の鋼鉄大剣:1

クザカ:3(2%
クザカ護符:1
クザカ刀剣:1
クザカアックス:1

ヌーベル:2(1.3%
ヌーベルダガー:1
ヌーベル組み糸飾り:1

ボス防具:1(0.6%
レッドノーズのアーマー:1

金枠アクセ:1(0.6%
オオクジラの奥歯イヤリング(実質青??):1

青枠アクセ:1(0.6%
木の精霊のベルト:1


2017年10月4日水曜日

黒い砂漠:野蛮の亀裂デイリーのスキルポイント増加量

LS Lv57  SP892 プレパケ無し

野蛮前




野蛮後



デイリーと野蛮合わせ経験値2.6%、SP0.1
これは普通に狩ったほうがよい....