Точки данных обрезаются при построении графика - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть график, где точки данных обрезаны, как видно на рисунке. Мне нужно исправить эту проблему, четко показав точки данных. Я уже пытался использовать ax.margins из предыдущих вопросов , но это ничего не меняет на моем графике. Ниже приведен код, который я использую. Я думаю, что ylim может поднять эту проблему, но если я не использую ylim, все мои данные остаются очень близко к нулевой оси.

def doscatterplot(xcoord,ycoord,labellist,ax=None):
    ax = ax
    ax.scatter(xcoord, ycoord,label=labellist)
    # ax.xaxis.set_major_formatter(mtick.FormatStrFormatter('%.2f'))
    ax.legend()
    ax.margins(0.1,y=0.7)
    ax.set_ylim(min(ycoord),max(ycoord))
    ax.ticklabel_format(axis='y',style='sci',scilimits=(-3,-4))
    ax.axhline(y=0, color='g')
    ax.axvline(x=0, color='g')
    ax.set_ylabel('Transversal Resistance [\u03A9]')
    ax.set_xlabel('HCools [T]')
    ax.set_title('Transversal Resistance [\u03A9] vs HCools [T]' )
    return

enter image description here

1 Ответ

0 голосов
/ 28 апреля 2020

Что я имел в виду в своем комментарии, так это добавление этой дополнительной строки кода:

dy = (max(ycoord) - min(ycoord))/20

, чтобы добавить немного дополнительного пространства выше и ниже ваших построенных данных (в данном случае, 20-й части диапазона ваших данных). Измените старую строку на эту, и она должна работать так, как вы хотите:

ax.set_ylim(min(ycoord) - dy, max(ycoord) + dy)

Также обратите внимание, что вы можете писать греческие символы, не прибегая к языку Юникод, попробуйте, например,

ax.set_ylabel(r'Transversal Resistance [$\Omega$]')

Вы можете увидеть больше информации здесь .

...