Guys, good morning. I’m starting up in Python and I ran into 3 problems.
I’m trying to create a line graph, with 02 lines, with the following code, which I got directly from the Altair package library:
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
source = pd.DataFrame(np.cumsum(np.random.randn(24, 3), 0).round(2),
columns=[‘A’, ‘B’, ‘C’], index=pd.RangeIndex(24, name=‘x’))
source = source.reset_index().melt(‘x’, var_name=‘category’, value_name=‘y’)
Create a selection that chooses the nearest point & selects based on x-value
nearest = alt.selection(type=‘single’, nearest=True, on=‘mouseover’,
fields=[‘x’], empty=‘none’)
The basic line
line = alt.Chart(source).mark_line(interpolate=‘basis’).encode(
x=‘x:Q’,
y=‘y:Q’,
color=‘category:N’
)
Transparent selectors across the chart. This is what tells us
the x-value of the cursor
selectors = alt.Chart(source).mark_point().encode(
x=‘x:Q’,
opacity=alt.value(0),
).add_selection(
nearest
)
Draw points on the line, and highlight based on selection
points = line.mark_point().encode(
opacity=alt.condition(nearest, alt.value(1), alt.value(0))
)
Draw text labels near the points, and highlight based on selection
text = line.mark_text(align=‘left’, dx=5, dy=-5).encode(
text=alt.condition(nearest, ‘y:Q’, alt.value(’ '))
)
Draw a rule at the location of the selection
rules = alt.Chart(source).mark_rule(color=‘gray’).encode(
x=‘x:Q’,
).transform_filter(
nearest
)
Put the five layers into a chart and bind the data
alt.layer(
line, selectors, points, rules, text
).properties(
width=1500, height=300
)
However, I was unable to get my document (.csv) to open and read correctly.
And I couldn’t change the beginning of the x-axis either. It starts at “0”, and I would like to start at 1 or some other number that is indexed in the attached file.
File link with data.
https://drive.google.com/file/d/154jTl4zwNJ-1wSGZCurItqFhv-lsM7vf/view?usp=sharing
Another question is… can I merge this line chart with bar chart?
Thank you,