[解決済み] Matplotlib: 整数の目盛りラベルを強制的に作成するには?
2023-07-23 12:01:36
質問
私のPythonスクリプトはmatplotlibを使用して、x, y, zデータセットの2D "heat map"をプロットすることができます。私のx値とy値はタンパク質のアミノ酸残基を表しており、したがって、整数でなければなりません。プロットにズームインすると、次のようになります。
先ほど言ったように、x-y軸のfloat値は私のデータでは意味をなさないので、このような形にしたいのです。
これを達成するためのアイデアはありますか? これはプロットを生成するコードです。
def plotDistanceMap(self):
# Read on x,y,z
x = self.currentGraph['xData']
y = self.currentGraph['yData']
X, Y = numpy.meshgrid(x, y)
Z = self.currentGraph['zData']
# Define colormap
cmap = colors.ListedColormap(['blue', 'green', 'orange', 'red'])
cmap.set_under('white')
cmap.set_over('white')
bounds = [1,15,50,80,100]
norm = colors.BoundaryNorm(bounds, cmap.N)
# Draw surface plot
img = self.axes.pcolor(X, Y, Z, cmap=cmap, norm=norm)
self.axes.set_xlim(x.min(), x.max())
self.axes.set_ylim(y.min(), y.max())
self.axes.set_xlabel(self.currentGraph['xTitle'])
self.axes.set_ylabel(self.currentGraph['yTitle'])
# Cosmetics
#matplotlib.rcParams.update({'font.size': 12})
xminorLocator = MultipleLocator(10)
yminorLocator = MultipleLocator(10)
self.axes.xaxis.set_minor_locator(xminorLocator)
self.axes.yaxis.set_minor_locator(yminorLocator)
self.axes.tick_params(direction='out', length=6, width=1)
self.axes.tick_params(which='minor', direction='out', length=3, width=1)
self.axes.xaxis.labelpad = 15
self.axes.yaxis.labelpad = 15
# Draw colorbar
colorbar = self.figure.colorbar(img, boundaries = [0,1,15,50,80,100],
spacing = 'proportional',
ticks = [15,50,80,100],
extend = 'both')
colorbar.ax.set_xlabel('Angstrom')
colorbar.ax.xaxis.set_label_position('top')
colorbar.ax.xaxis.labelpad = 20
self.figure.tight_layout()
self.canvas.draw()
どのように解決するのですか?
もっとシンプルにすべきです。
(以下 https://scivision.co/matplotlib-force-integer-labeling-of-axis/ )
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
#...
ax = plt.figure().gca()
#...
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] matplotlib で x 軸または y 軸の "目盛り頻度" を変更する
-
[解決済み] Matplotlibで目盛りラベルのフォントサイズを小さくする
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Matplotlibで図のタイトルと軸ラベルのフォントサイズを設定するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ティックラベルのテキストを変更する
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する