xの最小値 -186263.189598281
xの最大値 1819285.84776096
yの最小値 -376.008444356234
yの最大値 8436059.44764122
zの最小値 -254231.049692706
zの最大値 1231131.94751136
3Dのグラフに点で値を44個出したいのですが、
上記のように最小と最大のそれぞれの軸の値の幅が広いです。
見真似で書いてみると
Pyhthon
1import openpyxl as excel 2 3book = excel.load_workbook("riat.xlsx") 4sheet = book["riat1"] 5 6import matplotlib.pyplot as plt 7from mpl_toolkits.mplot3d import Axes3D 8import matplotlib.pyplot as plt 9import numpy as np 10 11 12#axオブジェクト作成 13fig = plt.figure(figsize=(100, 100)) # 図の設定 14ax = fig.add_subplot(111, projection='3d') 15 16#軸ラベル 17ax.set_xlabel("x") 18ax.set_ylabel("y") 19ax.set_zlabel("z") 20 21ax.set_xticks(np.arange(-254232, 8436060, 1000)) 22ax.set_xlim(-186264,181929) 23ax.set_ylim(-377,8436060) 24ax.set_zlim(-254232,1231132) 25#ax.set_aspect('equal') 26#ax.view_init(elev=2000, azim=-1000) 27ax.view_init(elev=None, azim=None) 28 29#データのプロット 30ax.plot(x1, y1, z1, "o", color="blue") 31ax.plot(x2, y2, z2, "o", color="red") 32ax.plot(x3, y3, z3, "o", color="blue") 33ax.plot(x4, y4, z4, "o", color="red") 34ax.plot(x5, y5, z5, "o", color="blue") 35ax.plot(x6, y6, z6, "o", color="red") 36ax.plot(x7, y7, z7, "o", color="blue") 37ax.plot(x8, y8, z8, "o", color="red") 38ax.plot(x9, y9, z9, "o", color="blue") 39ax.plot(x10, y10, z10, "o", color="red") 40ax.plot(x11, y11, z11, "o", color="blue") 41ax.plot(x12, y12, z12, "o", color="red") 42ax.plot(x13, y13, z13, "o", color="blue") 43ax.plot(x14, y14, z14, "o", color="red") 44ax.plot(x15, y15, z15, "o", color="blue") 45ax.plot(x16, y16, z16, "o", color="red") 46ax.plot(x17, y17, z17, "o", color="blue") 47ax.plot(x18, y18, z18, "o", color="red") 48ax.plot(x19, y19, z19, "o", color="blue") 49ax.plot(x20, y20, z20, "o", color="red") 50ax.plot(x21, y21, z21, "o", color="blue") 51ax.plot(x22, y22, z22, "o", color="red") 52ax.plot(x23, y23, z23, "o", color="blue") 53ax.plot(x24, y24, z24, "o", color="red") 54ax.plot(x25, y25, z25, "o", color="blue") 55ax.plot(x26, y26, z26, "o", color="red") 56ax.plot(x27, y27, z27, "o", color="blue") 57ax.plot(x28, y28, z28, "o", color="red") 58ax.plot(x29, y29, z29, "o", color="blue") 59ax.plot(x30, y30, z30, "o", color="red") 60ax.plot(x31, y31, z31, "o", color="blue") 61ax.plot(x32, y32, z32, "o", color="red") 62ax.plot(x33, y33, z33, "o", color="blue") 63ax.plot(x34, y34, z34, "o", color="red") 64ax.plot(x35, y35, z35, "o", color="blue") 65ax.plot(x36, y36, z36, "o", color="red") 66ax.plot(x37, y37, z37, "o", color="blue") 67ax.plot(x38, y38, z38, "o", color="red") 68ax.plot(x39, y39, z39, "o", color="blue") 69ax.plot(x40, y40, z40, "o", color="red") 70ax.plot(x41, y41, z41, "o", color="blue") 71ax.plot(x42, y42, z42, "o", color="red") 72ax.plot(x43, y43, z43, "o", color="blue") 73ax.plot(x44, y44, z44, "o", color="red") 74 75#グラフの表示 76plt.show()
重すぎてうまく表示されていませんがコードの結果です。
データそのものはexcelから持ってきています。
オブジェクトの作成、軸ラベルの作成がよくわからず、進めることができなくなりました。
オブジェクトの作成、軸ラベルの作成をわかりやすく教えていただきたいです。
お願いいたします。
やったこと
- fig = plt.figure(figsize=(100, 100)) # 図の設定 の100,100を-100,100とかにしてみた
- ax.set_xlim等の値を変えてみた
等はしてみましたが、うまくいかず…。
ネットで見ても3Dのグラフバージョンを見つけることができませんでした。
2Dとやり方は同じなのでしょうか?
値を小さくしてやり直してみた
Python
1#axオブジェクト作成 2fig = plt.figure(figsize=(10, 10)) # 図の設定 3ax = fig.add_subplot(111, projection='3d') 4 5#軸ラベル 6ax.set_xlabel("x") 7ax.set_ylabel("y") 8ax.set_zlabel("z") 9 10ax.set_xticks(np.arange(-20, 20, 1)) 11ax.set_yticks(np.arange(-20, 20, 1)) 12ax.set_zticks(np.arange(-20, 20, 1)) 13ax.set_xlim(-10, 10) 14ax.set_ylim(-10, 10) 15ax.set_zlim(-10, 10) 16#ax.set_aspect('equal') 17#ax.view_init(elev=2000, azim=-1000) 18ax.view_init(elev=None, azim=None)
このような結果になりました。
-10から10でしかできないのでしょうか?
10のところを全部20にしてみたりしたものの、上の画像の結果と同じになりました。
修正依頼の内容についての質問です。
1e6は10の6乗の意味です
→→→→→→ 1から8とかの書いてある数字に10の6条した値が正しい値ってことですか?
もしそうだとした場合、上の画像のような20個ずつの表記で大きい値をちゃんと記載することは難しいですか?
あなたの回答
tips
プレビュー