과학적 표기법 플롯에서 서브 플롯의 소수 자릿수

user3671704

Y 축이 다른 서브 플롯으로 그림을 만들고 있습니다. 마지막 플롯의 y 축은 과학적 표기법으로 표시해야하며 축의 숫자가 소수점 2 자리 만 표시하기를 원합니다. 즉 2.1565 대신 2.15입니다. 나는 성공하지 않고 몇 시간 동안 숫자 형식을 지정하려고 노력해 왔습니다. 그것을 수행하는 방법에 대한 제안?

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as mtick
from matplotlib.ticker import FormatStrFormatter


fig, axs = plt.subplots(2, 3)
y_pos = [0.2,0.4,0.6,0.8]


plt.setp(axs, xticks=[0.2,0.4,0.6,0.8], xticklabels=['A','B','C','D'],xlim=[0.1,0.9],facecolor='#F4F4F4')


#P-2

Pval = [3.3705E+00,3.4262E+00,3.5093E+00,3.4882E+00]

axs[0,0].set_ylim(3.3,3.55)
axs[0,0].set_yticks(np.arange(3.3,3.56, 0.05))
axs[0,0].grid(zorder=0)
axs[0,0].bar(y_pos,Pval,width=0.1,color='#ADDDCE')
axs[0,0].set_title(r'$Initial$') 
axs[0,0].grid(True,linestyle='--',color='#D6D8CD')





#P-1


Pval = [1.6667E+00,1.6079E+00,1.6087E+00,1.6132E+00]

axs[0,1].set_ylim(1.5,1.7)
axs[0,1].set_yticks(np.arange(1.5,1.71, 0.05))
axs[0,1].grid(zorder=0)
axs[0,1].bar(y_pos,Pval,width=0.1,color='#FFC347')

axs[0,1].set_title(r'$Test 1$') 
axs[0,1].grid(True,linestyle='--',color='#D6D8CD')







#P1

Pval = [9.9458E-01,9.4241E-01,9.4569E-01,9.4014E-01]
axs[0,2].set_ylim(0.8,1)
axs[0,2].set_yticks(np.arange(0.8,1.01, 0.05))

#
axs[0,2].grid(zorder=0)
axs[0,2].bar(y_pos,Pval,width=0.1,color='#FC746C')
# 
axs[0,2].set_title(r'$Test 2$') 
axs[0,2].grid(True,linestyle='--',color='#D6D8CD')





#P2


Pval = [2.4196E+00,2.3292E+00,2.3499E+00,2.3213E+00]
axs[1,0].set_ylim(1.8,2.5)
axs[1,0].set_yticks(np.arange(1.8,2.7, 0.2))
#
axs[1,0].grid(zorder=0)
axs[1,0].bar(y_pos,Pval,width=0.1,color='#70AE98')
# 
axs[1,0].set_title(r'$  \omega  $') 
axs[1,0].grid(True,linestyle='--',color='#D6D8CD')



#P3



Pval = [1.5646E+01,1.5346E+01,1.5538E+01,1.5298E+01]
axs[1,1].set_ylim(15,15.7)
axs[1,1].set_yticks(np.arange(15.,15.9, 0.2))

#X
axs[1,1].grid(zorder=0)
axs[1,1].bar(y_pos,Pval,width=0.1,color='#F0A35E')
#
axs[1,1].set_title(r'$  \Pi  $') 
axs[1,1].grid(True,linestyle='--',color='#D6D8CD')


#P4

Pval = [2.1391E+02,2.1148E+02,2.1434E+02,2.1085E+02]
axs[1,2].set_ylim(2.09E+02,2.15E+02)
axs[1,2].set_yticks(np.arange(2.09E+02,2.16E+02,0.95))
#axs[1,2].ticklabel_format(style='sci',scilimits=(200,300),axis='y')
#
#axs[1,2].yaxis.set_major_formatter(MathTextSciFormatter('%.2e'))

#m = grabMaxExponent(2)
#axs[1,2].yaxis.set_major_formatter(OOMFormatter(2, "%1.1f"))
#axs[1,2].yaxis.set_major_formatter(mtick.FormatStrFormatter('%.2f'))


axs[1,2].ticklabel_format(axis='y', style='sci', scilimits=(2,2))
axs[1,2].yaxis.major.formatter._useMathText = True
#axs[1,2].yaxis.set_major_formatter(FormatStrFormatter('%.2f'))
#axs[1,2].yaxis.set_major_formatter(MathTextSciFormatter('%.2e'))
#axs[1,2].ticklabel_format(useOffset=False)
#X
axs[1,2].grid(zorder=0)
axs[1,2].bar(y_pos,Pval,width=0.1,color='#CA7E8D')
# 
axs[1,2].set_title(r'$\gamma$') 
axs[1,2].grid(True,linestyle='--',color='#D6D8CD')


fig.tight_layout()
plt.show()

이것은 내 코드의 출력입니다.

Lezaf

ScalarFormatter사용자 지정 서식을 지원하지 않습니다. 시도 있는 것은 형식 지정을 담당하는 메서드를 재정의 하는 것입니다.

(참고 : 이것은 Matplotlib 2.0.x가 아닌 Matplotlib 3.0.x-Python 3.x에서 작동합니다.)

from matplotlib.ticker import ScalarFormatter
...
# P4

# Extend ScalarFormatter
class MyScalarFormatter(ScalarFormatter):
    # Override '_set_format' with your own
    def _set_format(self):
        self.format = '%.2f'  # Show 2 decimals

# Your data as before
Pval = [2.1391E+02,2.1148E+02,2.1434E+02,2.1085E+02]
axs[1,2].set_ylim(2.09E+02,2.15E+02)
axs[1,2].set_yticks(np.arange(2.09E+02,2.16E+02,0.95))

# New code
custom_formatter = MyScalarFormatter(useMathText=True)
axs[1,2].yaxis.set_major_formatter(custom_formatter)
axs[1,2].yaxis.major.formatter.set_powerlimits((2,2))
#axs[1,2].yaxis.major.formatter.set_scientific(True)  # Redundant: True is default

# Rest code as before
axs[1,2].grid(zorder=0)
axs[1,2].bar(y_pos,Pval,width=0.1,color='#CA7E8D')
axs[1,2].set_title(r'$\gamma$') 
axs[1,2].grid(True,linestyle='--',color='#D6D8CD')

fig.tight_layout()
plt.show()

산출

1

그것은 반올림 하지만, 당신의 y 축 값을. 그러나 원하는 결과를 얻기 위해 이런 식으로 약간 해결할 수 있습니다. ScalarFormatter 소스를 살펴보십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

서브 플롯의 한 틱에서만 matplotlib를 사용하여 트리 플롯의 소수 자릿수 변경

분류에서Dev

로그 플롯에서 사용자 지정 과학적 표기법 y 눈금 설정

분류에서Dev

R에서 플롯의 수학적 주석 내 간격을 제어하는 방법

분류에서Dev

플롯 그림의 최대 수직 서브 플롯 수

분류에서Dev

matplotlib에서 서브 플롯 사이의 수직 공간 줄이기

분류에서Dev

총 플롯 수에서 서브 플롯 제곱 차원 결정

분류에서Dev

matplotlib에서 서브 플롯 수정

분류에서Dev

C # xaml에서 수학 플롯 만들기

분류에서Dev

matplotlib 서브 플롯의 수직 배열

분류에서Dev

C ++ 과학적 표기법, 지수의 자릿수 변경

분류에서Dev

플롯에서 주기적으로 수치 업데이트

분류에서Dev

matplotlib에서 최소 제곱 추정 함수의 등고선 플롯 그리기

분류에서Dev

Gnuplot에서 for 루프의 동일한 플롯에 함수를 여러 번 플롯하는 방법

분류에서Dev

하나의 좌표계에서 세 쌍의 상자 수염 플롯

분류에서Dev

R에서 다 변수 상자 플롯 수염의 X 값 가져 오기

분류에서Dev

matplotlib의 플롯에서 두 숫자 사이의 분할 수 늘리기

분류에서Dev

MATLAB에서 하나의 그림에 두 개의 줄기 플롯과 두 개의 상자 플롯을 플로팅하는 방법은 무엇입니까?

분류에서Dev

hvPlot 플롯에서 과학적 표기법을 비활성화하는 방법은 무엇입니까?

분류에서Dev

ggparty가있는 의사 결정 트리 플롯의 모서리에있는 소수 자릿수

분류에서Dev

R-플롯 : 10베이스 과학적 표기법으로 서식을 지정하고 텍스트, mtex, 제목 등의 함수를 입력하는 방법은 무엇입니까?

분류에서Dev

rpart 회귀 트리 플롯에서 플롯 된 숫자를 과학적 표기법에서 표준 형식으로 변경하려면 어떻게해야합니까?

분류에서Dev

haskell에서 템플릿의 슬롯 수 계산

분류에서Dev

Vue 템플릿 슬롯에서 부모 슬롯 변수 사용

분류에서Dev

R 플롯의 범례에 수학 기호 삽입

분류에서Dev

MATLAB의 2D 강도 플롯에서 함수 플로팅

분류에서Dev

R의 거리 행렬에서 서수 플롯을 생성하는 방법

분류에서Dev

과학적 표기법을 csv에서 십진수로 변환

분류에서Dev

ggplot에서 패싯의 최소 또는 최대에서 상자 플롯에 샘플 크기 추가

분류에서Dev

R의 플롯에서 INF 값을 어떻게 표시 할 수 있습니까?

Related 관련 기사

  1. 1

    서브 플롯의 한 틱에서만 matplotlib를 사용하여 트리 플롯의 소수 자릿수 변경

  2. 2

    로그 플롯에서 사용자 지정 과학적 표기법 y 눈금 설정

  3. 3

    R에서 플롯의 수학적 주석 내 간격을 제어하는 방법

  4. 4

    플롯 그림의 최대 수직 서브 플롯 수

  5. 5

    matplotlib에서 서브 플롯 사이의 수직 공간 줄이기

  6. 6

    총 플롯 수에서 서브 플롯 제곱 차원 결정

  7. 7

    matplotlib에서 서브 플롯 수정

  8. 8

    C # xaml에서 수학 플롯 만들기

  9. 9

    matplotlib 서브 플롯의 수직 배열

  10. 10

    C ++ 과학적 표기법, 지수의 자릿수 변경

  11. 11

    플롯에서 주기적으로 수치 업데이트

  12. 12

    matplotlib에서 최소 제곱 추정 함수의 등고선 플롯 그리기

  13. 13

    Gnuplot에서 for 루프의 동일한 플롯에 함수를 여러 번 플롯하는 방법

  14. 14

    하나의 좌표계에서 세 쌍의 상자 수염 플롯

  15. 15

    R에서 다 변수 상자 플롯 수염의 X 값 가져 오기

  16. 16

    matplotlib의 플롯에서 두 숫자 사이의 분할 수 늘리기

  17. 17

    MATLAB에서 하나의 그림에 두 개의 줄기 플롯과 두 개의 상자 플롯을 플로팅하는 방법은 무엇입니까?

  18. 18

    hvPlot 플롯에서 과학적 표기법을 비활성화하는 방법은 무엇입니까?

  19. 19

    ggparty가있는 의사 결정 트리 플롯의 모서리에있는 소수 자릿수

  20. 20

    R-플롯 : 10베이스 과학적 표기법으로 서식을 지정하고 텍스트, mtex, 제목 등의 함수를 입력하는 방법은 무엇입니까?

  21. 21

    rpart 회귀 트리 플롯에서 플롯 된 숫자를 과학적 표기법에서 표준 형식으로 변경하려면 어떻게해야합니까?

  22. 22

    haskell에서 템플릿의 슬롯 수 계산

  23. 23

    Vue 템플릿 슬롯에서 부모 슬롯 변수 사용

  24. 24

    R 플롯의 범례에 수학 기호 삽입

  25. 25

    MATLAB의 2D 강도 플롯에서 함수 플로팅

  26. 26

    R의 거리 행렬에서 서수 플롯을 생성하는 방법

  27. 27

    과학적 표기법을 csv에서 십진수로 변환

  28. 28

    ggplot에서 패싯의 최소 또는 최대에서 상자 플롯에 샘플 크기 추가

  29. 29

    R의 플롯에서 INF 값을 어떻게 표시 할 수 있습니까?

뜨겁다태그

보관