Matplotlib pyplot раздавит лестничный питон

У меня есть образцы данных (я сообщаю всего несколько строк):

          date   price  sentiment
0   2018-09-18  0.0034   0.250000
1   2018-09-17  0.0034   0.083333
2   2018-09-16  0.0034   0.281250
3   2018-09-15  0.0035   0.096774
4   2018-09-14  0.0036  -0.039216
5   2018-09-13  0.0034   0.416667
6   2018-09-12  0.0031   0.061224

Мой пример кода таков:

import pandas as pd
import datetime as dt
import matplotlib.pyplot as plt

df = df.set_index(pd.to_datetime(df.date), drop=True)

params = {"text.color" : "black",
          'figure.figsize': (13, 5),
          "xtick.color" : "crimson",
          "ytick.color" : "crimson"}

plt.rcParams.update(params)
fig = plt.figure()

df.price.plot(grid=True, label = "Price", legend=True, color='#228B22', title='Price vs Sentiment')
df.sentiment.plot(grid=True, secondary_y=True, label = "Sentiment", legend=True, color='#3D59AB')

plt.show()

Я хотел бы разбить линию настроения в своем графике, чтобы лучше рассмотреть варианты, возможно, показывая весь диапазон [-1; 1] настроения. Какие-либо предложения? Как я могу улучшить свой сюжет ниже?

Matplotlib pyplot раздавит лестничный питон

Что вы имеете в виду, говоря «сломать линию настроений»? Вы можете построить линию настроения на двойной оси (правая ось Y). Создайте экземпляр оси ax и используйте его, чтобы построить на нем тональность для всего диапазона [-1,1]. Здесь - ссылка на использование двойной оси

Sheldore 20.09.2018 16:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
328
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите сделать ось настроений от -1 до 1, сделайте следующее.

import pandas as pd
import datetime as dt
import matplotlib.pyplot as plt

df = pd.DataFrame({'date': ['2018-09-18', '2018-09-17', '2018-09-16', '2018-09-15', '2018-09-14', '2018-09-13', '2018-09-12'], 
               'price': [0.0034, 0.0034, 0.0034, 0.0035, 0.0036, 0.0034, 0.0031], 
               'sentiment': [0.25, 0.083333, 0.281250, 0.096774, -0.039216, 0.416667, 0.061224]})
df = df.set_index(pd.to_datetime(df.date), drop=True)

params = {"text.color" : "black",
      'figure.figsize': (13, 5),
      "xtick.color" : "crimson",
      "ytick.color" : "crimson"}

plt.rcParams.update(params)
fig = plt.figure()
df.price.plot(grid=True, label = "Price", legend=True, color='#228B22', title='Price vs Sentiment')
df.sentiment.plot(grid=True, secondary_y=True, label = "Sentiment", legend=True, color='#3D59AB', ylim=(-1, 1))
plt.show()

https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.DataFrame.plot.html

Регулировка диапазона в Илим работает. Спасибо, Атул! ;)

La_haine 20.09.2018 17:02

Другие вопросы по теме