![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下のプログラムはPythonでせん断応力図、曲げモーメント図を表示させたいだけなのですが、
実行するとすぐウィンドウが落ちてしまいます。
どこをどう修正すれば良いか教えて頂けますか?
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import numpy as np
import matplotlib.pyplot as plt
# 梁の長さと荷重
L = 10 # 梁の長さ
P = 1000 # 集中荷重
# せん断応力と曲げモーメントの計算
x = np.linspace(0, L, 500)
V = np.piecewise(x, [x < L/2, x >= L/2], [P/2, -P/2]) # せん断応力
M = np.piecewise(x, [x < L/2, x >= L/2], [P*x/2, P*(L-x)/2]) # 曲げモーメント
# プロットの作成
fig, axs = plt.subplots(3, 1, figsize=(10, 8), sharex=True)
# 梁のイラスト
axs[0].plot([0, L], [0, 0], 'k-', linewidth=2)
axs[0].set_title('梁のイラスト')
axs[0].set_xlim(-1, L+1)
axs[0].set_ylim(-1, 1)
axs[0].set_yticks([])
axs[0].set_xticks([])
axs[0].annotate('荷重 P', xy=(L/2, 0), xytext=(L/2, 0.5),
arrowprops=dict(facecolor='black', shrink=0.05))
# せん断応力図
axs[1].plot(x, V, 'b-', label='せん断応力')
axs[1].set_title('せん断応力図')
axs[1].set_ylabel('せん断応力 [N]')
axs[1].grid(True)
axs[1].legend()
# 曲げモーメント図
axs[2].plot(x, M, 'r-', label='曲げモーメント')
axs[2].set_title('曲げモーメント図')
axs[2].set_xlabel('梁の位置 [m]')
axs[2].set_ylabel('曲げモーメント [Nm]')
axs[2].grid(True)
axs[2].legend()
plt.tight_layout()
# Tkinterウィンドウの設定
root = tk.Tk()
root.title("単純はりのせん断応力図と曲げモーメント図")
# MatplotlibのFigureをCanvasに埋め込む
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
# 終了ボタンの設定
def on_closing():
root.quit()
root.destroy()
root.protocol("WM_DELETE_WINDOW", on_closing)
tk.Button(root, text="終了", command=on_closing).pack(side=tk.BOTTOM)
root.mainloop()
No.2ベストアンサー
- 回答日時:
Windows 11のanacondaで試したらDLLload errorでimagingが見つからないと言われたのでanacondaをupdateしました。
そうしたらこんどはM = np.piecewise(x, [x < L/2, x >= L/2], [P*x/2, P*(L-x)/2])がerrorになったので以下のようにnp.where(x < L/2, P/2, -P/2)
np.where(x < L/2, P*x/2, P*(L-x)/2)
修正したら図とグラフは表示されましたが日本語は表示されませんでした。
No.1
- 回答日時:
分からん。
単に落ちてるだけ、なんじゃないの?
エラーは出てない?
こっち(xubuntu22.04, Python 3.11.9)で試してみると、落ちる、落ちない以外に単にエラーが出てくるんだが。
恐らくNumpy絡みのエラーで落ちてるんだと思うんだけどね。
ただ、デバッグは他人にやらせるような事じゃないと思うし、「プログラミング初心者はNumpyなんざ使わない/使ってはいけない」と言う原則から言うと、貴方は既にPythonプログラミングに「慣れてる」だろうから、デバッガ走らせながら見ていった方がいいと思うよ。
![「Pythonを使ってせん断応力図、曲げモ」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/0/525078_66af7f0538b1e/M.png)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
プログラミングの雑談がしたいのですがどこで出来ますか?
その他(プログラミング・Web制作)
-
近年誕生したプログラミング言語
その他(プログラミング・Web制作)
-
Pythonのコードエラーについてです。
その他(プログラミング・Web制作)
-
-
4
パソコン
C言語・C++・C#
-
5
Python、プログラミングについて質問です
C言語・C++・C#
-
6
c言語
C言語・C++・C#
-
7
次の日本語の意味を教えて下さい
C言語・C++・C#
-
8
python03について。
その他(プログラミング・Web制作)
-
9
Python言語のAnacondaの話です Windows 10 でアナコンダを入れました エディタ
その他(プログラミング・Web制作)
-
10
次の記述について
C言語・C++・C#
-
11
食材の期限を管理するためにGASを利用しようとしたのですがうまく動作してくれません
JavaScript
-
12
インクリメント演算子のみを用いて、下に表示されるようにプログラムします 99 100 102 103
C言語・C++・C#
-
13
これて逆じゃないですか?
C言語・C++・C#
-
14
どうして+3
C言語・C++・C#
-
15
エディターで以下のような色になるエディターは解りますか?
その他(プログラミング・Web制作)
-
16
hostファイル
その他(プログラミング・Web制作)
-
17
2つほどお聞きしたいことがあり、答えてもらえると助かります。 1つ目は、チャットGPTにあらかじめ、
C言語・C++・C#
-
18
プログラミングの課題がわからないので教えていただきたいです。特にサークル関数を定義した後に呼び出す方
C言語・C++・C#
-
19
文系のSE志望です。プログラミングを今から習得したいのですが、初めて学ぶのにオススメの言語があれば教
その他(プログラミング・Web制作)
-
20
このプログラミング言語のfor分の文法構造を教えてください
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SNMPの標準MIBについて
-
else if文の順序を変えることに...
-
python ボタンを押すと複数の関...
-
VBScriptでMsgBoxのYesNoボック...
-
【VB.NET】別Formのボタンが押...
-
flash lite1.1 ボタンについて
-
VB.NET2005 DataGridViewでレコ...
-
オブジェクトの重なり順の変更
-
VBAで改行の入ったデータの正規...
-
onClipEvent(load)かhitareaの...
-
テキストボックスにセルの値を...
-
「Me」を「Form1」にするとエラ...
-
バナーの枠を飛び出して動くア...
-
インスタンスとポインタ
-
先読み画像を後で生成するMCの...
-
【ExcelVBA】ファイル名をセル...
-
縦横比率のを変えずに画像のサ...
-
VB6.0のHideのバグ?
-
RPG(AS400)の本、サイトってあ...
-
マウス自体の移動量の取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Pythonを使ってせん断応力図、...
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
SNMPの標準MIBについて
-
四乗根を英語で言うと・・・
-
ADに参加していないPCからADサ...
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
ゲージと連動したムービークリ...
-
レーダーチャートの描画
-
SharedObjectの動作がうまくい...
-
リンゲージの設定
-
loadMovie()を組み込んだswfフ...
-
100点でクリアする簡単なモグラ...
-
flashでURLからのデータ取得
-
StandardMLの二分木に関する問...
-
経過時間を計るには
-
グローバル変数の呼び出し
-
ムービークリップの拡大縮小
-
Excel VBAで読み込んだテキスト...
おすすめ情報