Как построить из файла CSV в python в логарифмическом масштабе c со строкой в ​​виде метки X - PullRequest
0 голосов
/ 23 марта 2020

ФАЙЛ CSV:

Words,Count
GC,5
AT,3
TA,3
CG,2
CA,2
TG,1
AC,1

Код:

import pandas as pd
import plotly.express as px

df = pd.read_csv('file.csv')
fig = px.line(df, x = 'Words', y = 'Count', title='Zipf Law')
fig.show()

Я хочу, чтобы на метке X были слова, а на метке Y - граф, и график с данными ниже.

Ответы [ 3 ]

1 голос
/ 24 марта 2020

Вы отметили свой вопрос с помощью matplotlib. Итак, вот версия lib для matplot, которая очень похожа на вашу.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("stackoverflowdata.csv")

df.plot(kind='line', x='Words', y='Count', logy=True)
plt.show()

Она создает следующую диаграмму:

enter image description here

Если Вы удаляете параметр logy=True, вы получаете это: enter image description here

Они выглядят одинаково, но вы можете увидеть разницу, где логарифмическая c «компрессия» попадает между » G C "и" AT ". Существует также разница в разделах «CA» и «TG».

0 голосов
/ 23 марта 2020

Я нашел решение:

x = []
y = []

with open('podzielone.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        x.append(str(row[0]))
        y.append(str(row[1]))


x.reverse()
y.reverse()
plt.plot(x,y)
plt.xlabel('Words')
plt.ylabel('Count')
plt.title('Prawo Zipfa')
plt.legend()
plt.show()
0 голосов
/ 23 марта 2020

После создания fig вы можете позвонить

fig.update_layout(yaxis_type='log')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...