Добавление меток в легенду рассеянного графика - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь добавить метки легенды к моему графику рассеяния для моего отчета по физической лаборатории.Кажется, он отображает только первое слово (в данном случае: «Факт») и ничего больше.Сюжет также сохраняет и пустой файл.

import matplotlib.pyplot as plt
import numpy as np

IndexofR=[1.33, 1.443, 1.34] #Actual, Pfund's Method, Snell's Law
Colors = ['red', 'blue', 'green']
Labels = ['Actual','Pfund\'s Method', 'Snell\'s Law']

plt.scatter(IndexofR, np.zeros_like(IndexofR), c = ['red', 'blue', 'green'], vmin=-2)

plt.yticks([])
plt.xlabel('Index of Refraction')
plt.legend(Labels, loc=1)
plt.title('Actual and Calculated Indexes of Refraction in Tap Water')
plt.show()
plt.savefig('LineGraphLab2.pdf')

Я также хотел бы сделать весь график короче (он высокий для небольшого количества данных).

Ответы [ 3 ]

1 голос
/ 28 сентября 2019

Попробуйте сделать что-то вроде этого:

import matplotlib.pyplot as plt
import numpy as np

IndexofR=[1.33, 1.443, 1.34] #Actual, Pfund's Method, Snell's Law
Colors = ['red', 'blue', 'green']
Labels = ['Actual','Pfund\'s Method', 'Snell\'s Law']

for i, c, l in zip(IndexofR, Colors, Labels):
    plt.scatter(i, np.zeros_like(i), c=c, vmin=-2, label=l)

plt.yticks([])
plt.xlabel('Index of Refraction')
plt.legend(loc=1)
plt.title('Actual and Calculated Indexes of Refraction in Tap Water')
plt.show()
plt.savefig('LineGraphLab2.pdf')
0 голосов
/ 28 сентября 2019

Мои знания не могли изменить размер изображения.

enter image description here

import matplotlib.pyplot as plt
import numpy as np

IndexofR = [1.33, 1.443, 1.34]  # Actual, Pfund's Method, Snell's Law
Colors = ['red', 'blue', 'green']
Labels = ['Actual', 'Pfund\'s Method', 'Snell\'s Law']

plt.scatter(IndexofR, np.zeros_like(IndexofR), c=['red', 'blue', 'green'], vmin=-2)

plt.yticks([])
plt.xlabel('Index of Refraction')

# plt.scatter(x_array, y_array, label="label_name")
for n in range(len(Labels)):
    plt.scatter(IndexofR[n], 0, label=Labels[n])

plt.legend(Labels, loc=len(Labels))
plt.title('Actual and Calculated Indexes of Refraction in Tap Water')
plt.show()
plt.savefig('LineGraphLab2.pdf')
0 голосов
/ 28 сентября 2019

Да, потому что вы вводите список, а не строку, поэтому будет использоваться только первый элемент в списке, в данном случае «Актуальный».Фраза, которую вы хотите:

Фактический метод Пфунда Закон Снелла

Может работать следующее,

Labels = 'Actual' + 'Pfund\'s Method' + 'Snell\'s Law'

Iя не уверен насчет спасения в Perl.Использует ли matplotlib латекс (?), Если так будет работать

 Labels = 'Actual' + 'Pfund\textquotesingle s Method' + 'Snell\textquotesingle s Law'

Побег Linux для цитаты - это если курс "" "" или просто пропустить апостроф?

Другая частьвопрос в определении размеров подзаговоров, а именно:

fig = plt.figure(figsize=(10,10), dpi=200)
axes = fig.add_subplot(1.5,1,1)
Etc...

Поиграйтесь с числами, пока не получите нужный вам сюжет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...