

以下のプログラムは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プログラミングに「慣れてる」だろうから、デバッガ走らせながら見ていった方がいいと思うよ。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX PYTHONのtkinterについて 1 2023/10/14 10:19
- 建築学 梁の計算で手こずってます。建築系の事に詳しい人、誰か助けてください 僕は工学系の学生なんですが、梁に 1 2022/11/15 12:53
- AJAX Pythonのtkinterについて 2 2023/10/12 19:31
- 工学 等分布荷重の曲げモーメント計算について 1 2022/08/16 14:36
- その他(プログラミング・Web制作) Python言語のAnacondaの話です Windows 10 でアナコンダを入れました エディタ 4 2024/07/17 23:35
- 工学 材料力学(構造力学?)についての問題です。 写真のような形で部材CDの内力を考えます。 C点からの距 1 2022/11/22 00:41
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- その他(プログラミング・Web制作) PythonのTkinter詳しい方へ。画像や言葉の意味を答える3択クイズを作るのに手間取っています 1 2023/12/04 17:10
- 物理学 材料力学の断面2次モーメントを求める問題です。写真のように図形を分割して、長方形のX軸に関する断面2 3 2024/06/20 16:14
- その他(プログラミング・Web制作) pythonの画像の貼り付けについて 4 2023/10/01 23:37
このQ&Aを見た人はこんなQ&Aも見ています
-
どうして+3
C言語・C++・C#
-
今ってプログラミング言語は何が中心?
C言語・C++・C#
-
近年誕生したプログラミング言語
その他(プログラミング・Web制作)
-
-
4
プログラミングを学ぼうと思います。 1ヶ月程度である程度習得できる言語は何ですか?ブラウザ上でアプリ
その他(プログラミング・Web制作)
-
5
AIがプログラムする時代のプログラマー不要論の相違について
その他(プログラミング・Web制作)
-
6
javascriptを使ってラジオボタンで本文の内容を切り替えたいです
JavaScript
-
7
ExcelVBAマクロで実行した時の疑問
Visual Basic(VBA)
-
8
Win11で作業を自動化したいです。どんなソフトがありますか?教えて下さい。単にマウスで特定の場所を
その他(プログラミング・Web制作)
-
9
プログラミング言語についてc++に空白あると同じ文字を再度繰り返して処理しないといけないので2倍動作
C言語・C++・C#
-
10
プログラミング言語について
その他(プログラミング・Web制作)
-
11
ホログラムを作ってくれる会社はありませんか
その他(プログラミング・Web制作)
-
12
プログラマーに向いている人の特徴や性格は何がありますか?
その他(プログラミング・Web制作)
-
13
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
14
長門有希のようにコンピュータに詳しい女性っているのでしょうかよろしくお願いしますm(_ _)m
その他(プログラミング・Web制作)
-
15
Pythonでの文字列からfloatへの変換エラー
その他(プログラミング・Web制作)
-
16
パソコン
C言語・C++・C#
-
17
fortran write文について マチンの公式で円周率を近似するプログラムを作っています。 wr
その他(プログラミング・Web制作)
-
18
フロントエンドエンジニアをしていますが、スキルアップのための転職、異動は3年目では早すぎますか? 今
その他(プログラミング・Web制作)
-
19
ネットワークフォルダの中身をクリアするbatの記述を教えてください。
その他(プログラミング・Web制作)
-
20
pythonについて
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
オブジェクトがうまく指定でき...
-
FLASHで「かるた」を作りたいの...
-
pythonのグローバル変数
-
C言語でネットワーク範囲のIPア...
-
VBAユーザーホームテキストボッ...
-
アナログ時計の針を透過させた...
-
AS2をAS3にしたい
-
前月表示ですけど
-
IP Address 入力フォームについて
-
photoshopで書いた四角の枠の中...
-
ダイナミックテキストに読み込...
-
シェルでMYSQLを実行したい
-
キープレスとボタンクリックの...
-
テキストエリア内の文字列にリ...
-
upc 7915と mc7915ctは互換性有...
-
テキストボックスの中身をリセ...
-
マウスに反応した画像スクロール
-
accessの検索について質問です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
四乗根を英語で言うと・・・
-
PythonでSetWindowPosを使うに...
-
else if文の順序を変えることに...
-
SNMPの標準MIBについて
-
スライドショーの制御
-
Pythonを使ってせん断応力図、...
-
レーダーチャートの描画
-
FlashCS5 ActionScript2.0で3...
-
ADに参加していないPCからADサ...
-
addchildからrootに命令
-
pythonの画像の貼り付けについて
-
C++インタプリタを探してます
-
複数の外部SWFの読み込みする場...
-
node* ってなんなのでしょうか?
-
クリックされたインスタンス以...
-
acttionscript2.0から3.0へ。。...
-
ムービーをクリックしてボタン...
-
スライドショーのフェードイン...
-
goto文が動かない orz
おすすめ情報