2017-09-06 16 views
2

効率(y)に対してx軸(濃度)のグラフをプロットしています。私は0から100までのxの値を表示するように設定しましたが、別のデータポイントをコントロールとして追加したいのですが、全く解決策はありません。私はこれが集中軸上のどこにも当てはまらないので問題を抱えていますが、Idは0または100より前に追加することをお勧めします。整数のx軸に文字列を追加する

x_array = ['control', 0, 20, 40, 50, 100] 
y_array = [1, 2, 3, 4, 5, 6] 
plt.plot(x_array, y_array) 

はこれをしようと、私はエラーを取得する:だから私のx軸は[ 'コントロール'、0、20、40、60、80、100]

はMWEのようになります。

ValueError: could not convert string to float: 'control'

どのように私はこの作品のようなものを作ることができる任意のアイデア? Iveはxticksを見ましたが、それはx軸を文字列としてプロットするので、軸の連続性が失われてしまい、データポイントが等間隔にならないためプロットが乱れてしまいます。

答えて

3

plotを別の呼び出しとしてグラフに1つのポイントを追加してから、x軸のラベルを調整できます。

import matplotlib.pyplot as plt 

x_array = [0, 20, 40, 50, 100] 
y_array = [2, 3, 4, 5, 6] 
x_con = -20 
y_con = 1 
x_ticks = [-20, 0, 20, 40, 60, 80, 100] 
x_labels = ['control', 0, 20, 40, 60, 80, 100] 

fig, ax = plt.subplots(1,1) 
ax.plot(x_array, y_array) 
ax.plot(x_con, y_con, 'ro') # add a single red dot 

# set tick positions, adjust label text 
ax.xaxis.set_ticks(x_ticks) 
ax.xaxis.set_ticklabels(x_labels) 
ax.set_xlim(x_con-10, max(x_array)+3) 
ax.set_ylim(0,7) 
plt.show() 

enter image description here

関連する問題