0

グラフがあるときに、x 軸の開始時に 0.0 を 0 に変更しようとしました。

私の数値データは次のとおりです。

x = 0.115, 0.234, 0.329, 0.443, 0.536, 0.654, 0.765, 0.846

y = 5.598, 7.6942, 9.1384, 11.2953, 12.4065, 15.736, 21.603, 31.4367

s = 0.05, 0.1, 0.16, 0.4, 0.32, 0.17, 0.09, 1.2

元のデータには x = 0、y = 0 がありません。それを追加するコマンドを作成し、グラフを自動的に作成します。しかし、グラフは x 軸の 0.0 から始まります。残りの数値に影響を与えずに 0.0 を 0 に変更するにはどうすればよいですか?

次のリンクを調査しました...しかし、まだ成功していません... 目盛りラベルテキスト のpyplotを変更して、ゼロの数字を削除します(0.00ではなく0から開始)

私が持っているコマンドは次のとおりです。

import pandas as pd
import matplotlib.pyplot as plt

datos = pd.read_csv('.name.csv')
print(datos)

datosSM1 = datos[0:0]
datosSM1.loc[0] = 0
datosSM2 = datos[0:]

datosSM = pd.concat([datosSM1, datosSM2])
print(datosSM)

x = datosSM['x']
y = datosSM['y']
ys = datosSM['s']

plt.errorbar(x,y, fmt = 'ko', label = 'datos', 
         yerr = ys, ecolor='r' )
plt.axis([0, x.max()+0.02, 0, y.max()+(y.max()/10)])

plt.show()

私はあなたの助けと注意に本当に感謝しています.

4

2 に答える 2

0

選択したラベル (実際にはそのテキスト) を変更するには、次のコードを試してください。

# Prepend first row with zeroes
datosSM = pd.concat([pd.DataFrame({'x': 0, 'y': 0, 's': 0}, index=[0]),
    datos], ignore_index=True)
# Drawing
fig, ax = plt.subplots()  # Will be needed soon
plt.errorbar(datosSM.x, datosSM.y, yerr=datosSM.x, fmt='ko', label='datos', ecolor='r')
plt.axis([0, datosSM.x.max() + 0.02, 0, datosSM.y.max() + (datosSM.y.max() / 10)])
fig.canvas.draw()  # Needed to get access to label texts
# Get label texts
labels = [item.get_text() for item in ax.get_xticklabels()]
labels[0] = '0'    # Modify the selected label
ax.set_xticklabels(labels)
plt.show()

上記のコードの追加の改善点の 1 つは、行の前にゼロを付けてデータフレームを生成するより簡潔な方法です。

もう 1 つの改善点は、個々の列を「抽出」する必要がないことです。DataFrame の既存の列を渡すことができます。

結果は次のとおりです。

ここに画像の説明を入力

于 2020-05-31T05:16:27.890 に答える