2
私はmatplotlibライブラリを使ってビームのストレスをプロットしようとしています。私は式を用いて算出し、例えば、それをプロットしているmatplotlibで矩形バーの温度(応力)をプロットする方法は?
:図1のよう
、あなたは緑色の光が素子3でより多くのストレスを持っていることを確認し、また要素8ますしたがって、私の場合虹色のグラデーションで色を塗りつぶします。青い梁の全体が同じ色になりますが、緑色の梁は要素3と8によって異なる色になり、他の部分よりも赤い面に向かいます。ここで
私のコードとその結果の一部です。
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.tri as tri
import numpy as np
node_coordinate = {1: [0.0, 1.0], 2: [0.0, 0.0], 3: [4.018905, 0.87781],
4: [3.978008, -0.1229], 5: [1.983549, -0.038322],
6: [2.013683, 0.958586], 7: [3.018193, 0.922264],
8: [2.979695, -0.079299], 9: [1.0070439, 0.989987],
10: [0.9909098, -0.014787999999999999]}
element_stress = {1: 0.2572e+01, 2: 0.8214e+00, 3: 0.5689e+01,
4: -0.8214e+00, 5: -0.2572e+01, 6: -0.4292e+01,
7: 0.4292e+01, 8: -0.5689e+01}
n = len(element_stress.keys())
x = np.empty(n)
y = np.empty(n)
d = np.empty(n)
for i in element_stress.keys():
x[i-1] = node_coordinate[i][0]
y[i-1] = node_coordinate[i][1]
d[i-1] = element_stress[i]
mask = np.logical_or(x < 1.e20, y < 1.e20)
x = np.compress(mask, x)
y = np.compress(mask, y)
triang = tri.Triangulation(x, y)
cmap = mpl.cm.jet
fig = plt.figure(figsize=(80, 40))
ax1 = fig.add_axes([0.05, 0.80, 0.9, 0.15])
cax = ax1.tricontourf(triang, d, cmap=cmap)
fig.colorbar(cax)
plt.show()
私はノードの座標と、要素の応力値のすべてを知っていることがわかります。
しかし、私の人物の色は滑らかではなく、上記の例のように水平に配置されていません。
同じようにするには?
P.S.私の文法で申し訳ありませんが、私はネイティブではありません。
ありがとうございます。提案のために。
感謝のために、あなたは例の図と同じように、水平に色を変換する方法を導くことができます。 ありがとうございます。 –
'orientation =" horizontal "'を使って、カラーバーを水平にすることができます。 – ImportanceOfBeingErnest
@ImportanceOfBeingEmest私はそれをしようとしましたが、動作しません。 –